You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

v1_json.tmpl 495KB

User keypairs and HTTP signatures for ActivityPub federation using go-ap (#19133) * go.mod: add go-fed/{httpsig,activity/pub,activity/streams} dependency go get github.com/go-fed/activity/streams@master go get github.com/go-fed/activity/pub@master go get github.com/go-fed/httpsig@master * activitypub: implement /api/v1/activitypub/user/{username} (#14186) Return informations regarding a Person (as defined in ActivityStreams https://www.w3.org/TR/activitystreams-vocabulary/#dfn-person). Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: add the public key to Person (#14186) Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: go-fed conformant Clock instance Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: signing http client Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: implement the ReqSignature middleware Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: hack_16834 Signed-off-by: Loïc Dachary <loic@dachary.org> * Fix CI checks-backend errors with go mod tidy Signed-off-by: Anthony Wang <ta180m@pm.me> * Change 2021 to 2022, properly format package imports Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt and make generate-swagger Signed-off-by: Anthony Wang <ta180m@pm.me> * Use Gitea JSON library, add assert for pkp Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt again, fix err var redeclaration Signed-off-by: Anthony Wang <ta180m@pm.me> * Remove LogSQL from ActivityPub person test Signed-off-by: Anthony Wang <ta180m@pm.me> * Assert if json.Unmarshal succeeds Signed-off-by: Anthony Wang <ta180m@pm.me> * Cleanup, handle invalid usernames for ActivityPub person GET request Signed-off-by: Anthony Wang <ta180m@pm.me> * Rename hack_16834 to user_settings Signed-off-by: Anthony Wang <ta180m@pm.me> * Use the httplib module instead of http for GET requests * Clean up whitespace with make fmt * Use time.RFC1123 and make the http.Client proxy-aware * Check if digest algo is supported in setting module * Clean up some variable declarations * Remove unneeded copy * Use system timezone instead of setting.DefaultUILocation * Use named constant for httpsigExpirationTime * Make pubKey IRI #main-key instead of /#main-key * Move /#main-key to #main-key in tests * Implemented Webfinger endpoint. * Add visible check. * Add user profile as alias. * Add actor IRI and remote interaction URL to WebFinger response * fmt * Fix lint errors * Use go-ap instead of go-fed * Run go mod tidy to fix missing modules in go.mod and go.sum * make fmt * Convert remaining code to go-ap * Clean up go.sum * Fix JSON unmarshall error * Fix CI errors by adding @context to Person() and making sure types match * Correctly decode JSON in api_activitypub_person_test.go * Force CI rerun * Fix TestActivityPubPersonInbox segfault * Fix lint error * Use @mariusor's suggestions for idiomatic go-ap usage * Correctly add inbox/outbox IRIs to person * Code cleanup * Remove another LogSQL from ActivityPub person test * Move httpsig algos slice to an init() function * Add actor IRI and remote interaction URL to WebFinger response * Update TestWebFinger to check for ActivityPub IRI in aliases * make fmt * Force CI rerun * WebFinger: Add CORS header and fix Href -> Template for remote interactions The CORS header is needed due to https://datatracker.ietf.org/doc/html/rfc7033#section-5 and fixes some Peertube <-> Gitea federation issues * make lint-backend * Make sure Person endpoint has Content-Type application/activity+json and includes PreferredUsername, URL, and Icon Setting the correct Content-Type is essential for federating with Mastodon * Use UTC instead of GMT * Rename pkey to pubKey * Make sure HTTP request Date in GMT * make fmt * dont drop err * Make sure API responses always refer to username in original case Copied from what I wrote on #19133 discussion: Handling username case is a very tricky issue and I've already encountered a Mastodon <-> Gitea federation bug due to Gitea considering Ta180m and ta180m to be the same user while Mastodon thinks they are two different users. I think the best way forward is for Gitea to only use the original case version of the username for federation so other AP software don't get confused. * Move httpsig algs constant slice to modules/setting/federation.go * Add new federation settings to app.example.ini and config-cheat-sheet * Return if marshalling error * Make sure Person IRIs are generated correctly This commit ensures that if the setting.AppURL is something like "http://127.0.0.1:42567" (like in the integration tests), a trailing slash will be added after that URL. * If httpsig verification fails, fix Host header and try again This fixes a very rare bug when Gitea and another AP server (confirmed to happen with Mastodon) are running on the same machine, Gitea fails to verify incoming HTTP signatures. This is because the other AP server creates the sig with the public Gitea domain as the Host. However, when Gitea receives the request, the Host header is instead localhost, so the signature verification fails. Manually changing the host header to the correct value and trying the veification again fixes the bug. * Revert "If httpsig verification fails, fix Host header and try again" This reverts commit f53e46c721a037c55facb9200106a6b491bf834c. The bug was actually caused by nginx messing up the Host header when reverse-proxying since I didn't have the line `proxy_set_header Host $host;` in my nginx config for Gitea. * Go back to using ap.IRI to generate inbox and outbox IRIs * use const for key values * Update routers/web/webfinger.go * Use ctx.JSON in Person response to make code cleaner * Revert "Use ctx.JSON in Person response to make code cleaner" This doesn't work because the ctx.JSON() function already sends the response out and it's too late to edit the headers. This reverts commit 95aad988975be3393c76094864ed6ba962157e0c. * Use activitypub.ActivityStreamsContentType for Person response Content Type * Limit maximum ActivityPub request and response sizes to a configurable setting * Move setting key constants to models/user/setting_keys.go * Fix failing ActivityPubPerson integration test by checking the correct field for username * Add a warning about changing settings that can break federation * Add better comments * Don't multiply Federation.MaxSize by 1<<20 twice * Add more better comments * Fix failing ActivityPubMissingPerson test We now use ctx.ContextUser so the message printed out when a user does not exist is slightly different * make generate-swagger For some reason I didn't realize that /templates/swagger/v1_json.tmpl was machine-generated by make generate-swagger... I've been editing it by hand for three months! 🤦 * Move getting the RFC 2616 time to a separate function * More code cleanup * Update go-ap to fix empty liked collection and removed unneeded HTTP headers * go mod tidy * Add ed25519 to httpsig algorithms * Use go-ap/jsonld to add @context and marshal JSON * Change Gitea user agent from the default to Gitea/Version * Use ctx.ServerError and remove all remote interaction code from webfinger.go
1 year ago
Adopt repositories (#12920) * Don't automatically delete repository files if they are present Prior to this PR Gitea would delete any repository files if they are present during creation or migration. This can in certain circumstances lead to data-loss and is slightly unpleasant. This PR provides a mechanism for Gitea to adopt repositories on creation and otherwise requires an explicit flag for deletion. PushCreate is slightly different - the create will cause adoption if that is allowed otherwise it will delete the data if that is allowed. Signed-off-by: Andrew Thornton <art27@cantab.net> * Update swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * Fix tests and migrate overwrite Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @lunny Only offer to adopt or overwrite if the user can do that. Allow the site administrator to adopt or overwrite in all circumstances Signed-off-by: Andrew Thornton <art27@cantab.net> * Use setting.Repository.DefaultBranch for the default branch Signed-off-by: Andrew Thornton <art27@cantab.net> * Always set setting.Repository.DefaultBranch Signed-off-by: Andrew Thornton <art27@cantab.net> * update swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * update templates Signed-off-by: Andrew Thornton <art27@cantab.net> * ensure repo closed Signed-off-by: Andrew Thornton <art27@cantab.net> * Rewrite of adoption as per @6543 and @lunny Signed-off-by: Andrew Thornton <art27@cantab.net> * Apply suggestions from code review * update swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * missing not Signed-off-by: Andrew Thornton <art27@cantab.net> * add modals and flash reporting Signed-off-by: Andrew Thornton <art27@cantab.net> * Make the unadopted page searchable Signed-off-by: Andrew Thornton <art27@cantab.net> * Add API Signed-off-by: Andrew Thornton <art27@cantab.net> * Fix swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * fix swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * Handle empty and non-master branched repositories Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint Signed-off-by: Andrew Thornton <art27@cantab.net> * remove commented out code Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
3 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add Organization Wide Labels (#10814) * Add organization wide labels Implement organization wide labels similar to organization wide webhooks. This lets you create individual labels for organizations that can be used for all repos under that organization (so being able to reuse the same label across multiple repos). This makes it possible for small organizations with many repos to use labels effectively. Fixes #7406 * Add migration * remove comments * fix tests * Update options/locale/locale_en-US.ini Removed unused translation string * show org labels in issue search label filter * Use more clear var name * rename migration after merge from master * comment typo * update migration again after rebase with master * check for orgID <=0 per guillep2k review * fmt * Apply suggestions from code review Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * remove unused code * Make sure RepoID is 0 when searching orgID per code review * more changes/code review requests * More descriptive translation var per code review * func description/delete comment when issue label deleted instead of hiding it * remove comment * only use issues in that repo when calculating number of open issues for org label on repo label page * Add integration test for IssuesSearch API with labels * remove unused function * Update models/issue_label.go Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Use subquery in GetLabelIDsInReposByNames * Fix tests to use correct orgID * fix more tests * IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well * update comment for clarity * Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition * Don't sort repos by date in IssuesSearch API After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures: SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45 Returns different results for MySQL than other engines. However, the similar query: SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30 Returns the same results. This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function. * linter is back! * code review * remove now unused option * Fix newline at end of files * more unused code * update to master * check for matching ids before query * Update models/issue_label.go Co-Authored-By: 6543 <6543@obermui.de> * Update models/issue_label.go * update comments * Update routers/org/setting.go Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: 6543 <6543@obermui.de>
4 years ago
Add Organization Wide Labels (#10814) * Add organization wide labels Implement organization wide labels similar to organization wide webhooks. This lets you create individual labels for organizations that can be used for all repos under that organization (so being able to reuse the same label across multiple repos). This makes it possible for small organizations with many repos to use labels effectively. Fixes #7406 * Add migration * remove comments * fix tests * Update options/locale/locale_en-US.ini Removed unused translation string * show org labels in issue search label filter * Use more clear var name * rename migration after merge from master * comment typo * update migration again after rebase with master * check for orgID <=0 per guillep2k review * fmt * Apply suggestions from code review Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * remove unused code * Make sure RepoID is 0 when searching orgID per code review * more changes/code review requests * More descriptive translation var per code review * func description/delete comment when issue label deleted instead of hiding it * remove comment * only use issues in that repo when calculating number of open issues for org label on repo label page * Add integration test for IssuesSearch API with labels * remove unused function * Update models/issue_label.go Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Use subquery in GetLabelIDsInReposByNames * Fix tests to use correct orgID * fix more tests * IssuesSearch api now uses new BuildLabelNamesIssueIDsCondition. Add a few more tests as well * update comment for clarity * Revert previous code change now that we can use the new BuildLabelNamesIssueIDsCondition * Don't sort repos by date in IssuesSearch API After much debugging I've found a strange issue where in some cases MySQL will return a different result than other enigines if a query is sorted by a null collumn. For example with our integration test data where we don't set updated_unix in repository fixtures: SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 45 Returns different results for MySQL than other engines. However, the similar query: SELECT `id`, `owner_id`, `owner_name`, `lower_name`, `name`, `description`, `website`, `original_service_type`, `original_url`, `default_branch`, `num_watches`, `num_stars`, `num_forks`, `num_issues`, `num_closed_issues`, `num_pulls`, `num_closed_pulls`, `num_milestones`, `num_closed_milestones`, `is_private`, `is_empty`, `is_archived`, `is_mirror`, `status`, `is_fork`, `fork_id`, `is_template`, `template_id`, `size`, `is_fsck_enabled`, `close_issues_via_commit_in_any_branch`, `topics`, `avatar`, `created_unix`, `updated_unix` FROM `repository` ORDER BY updated_unix DESC LIMIT 15 OFFSET 30 Returns the same results. This causes integration tests to fail on MySQL in certain cases but would never show up in a real installation. Since this API call always returns issues based on the optionally provided repo_priority_id or the issueID itself, there is no change to results by changing the repo sorting method used to get ids earlier in the function. * linter is back! * code review * remove now unused option * Fix newline at end of files * more unused code * update to master * check for matching ids before query * Update models/issue_label.go Co-Authored-By: 6543 <6543@obermui.de> * Update models/issue_label.go * update comments * Update routers/org/setting.go Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: 6543 <6543@obermui.de>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add Package Registry (#16510) * Added package store settings. * Added models. * Added generic package registry. * Added tests. * Added NuGet package registry. * Moved service index to api file. * Added NPM package registry. * Added Maven package registry. * Added PyPI package registry. * Summary is deprecated. * Changed npm name. * Sanitize project url. * Allow only scoped packages. * Added user interface. * Changed method name. * Added missing migration file. * Set page info. * Added documentation. * Added documentation links. * Fixed wrong error message. * Lint template files. * Fixed merge errors. * Fixed unit test storage path. * Switch to json module. * Added suggestions. * Added package webhook. * Add package api. * Fixed swagger file. * Fixed enum and comments. * Fixed NuGet pagination. * Print test names. * Added api tests. * Fixed access level. * Fix User unmarshal. * Added RubyGems package registry. * Fix lint. * Implemented io.Writer. * Added support for sha256/sha512 checksum files. * Improved maven-metadata.xml support. * Added support for symbol package uploads. * Added tests. * Added overview docs. * Added npm dependencies and keywords. * Added no-packages information. * Display file size. * Display asset count. * Fixed filter alignment. * Added package icons. * Formatted instructions. * Allow anonymous package downloads. * Fixed comments. * Fixed postgres test. * Moved file. * Moved models to models/packages. * Use correct error response format per client. * Use simpler search form. * Fixed IsProd. * Restructured data model. * Prevent empty filename. * Fix swagger. * Implemented user/org registry. * Implemented UI. * Use GetUserByIDCtx. * Use table for dependencies. * make svg * Added support for unscoped npm packages. * Add support for npm dist tags. * Added tests for npm tags. * Unlink packages if repository gets deleted. * Prevent user/org delete if a packages exist. * Use package unlink in repository service. * Added support for composer packages. * Restructured package docs. * Added missing tests. * Fixed generic content page. * Fixed docs. * Fixed swagger. * Added missing type. * Fixed ambiguous column. * Organize content store by sha256 hash. * Added admin package management. * Added support for sorting. * Add support for multiple identical versions/files. * Added missing repository unlink. * Added file properties. * make fmt * lint * Added Conan package registry. * Updated docs. * Unify package names. * Added swagger enum. * Use longer TEXT column type. * Removed version composite key. * Merged package and container registry. * Removed index. * Use dedicated package router. * Moved files to new location. * Updated docs. * Fixed JOIN order. * Fixed GROUP BY statement. * Fixed GROUP BY #2. * Added symbol server support. * Added more tests. * Set NOT NULL. * Added setting to disable package registries. * Moved auth into service. * refactor * Use ctx everywhere. * Added package cleanup task. * Changed packages path. * Added container registry. * Refactoring * Updated comparison. * Fix swagger. * Fixed table order. * Use token auth for npm routes. * Enabled ReverseProxy auth. * Added packages link for orgs. * Fixed anonymous org access. * Enable copy button for setup instructions. * Merge error * Added suggestions. * Fixed merge. * Handle "generic". * Added link for TODO. * Added suggestions. * Changed temporary buffer filename. * Added suggestions. * Apply suggestions from code review Co-authored-by: Thomas Boerger <thomas@webhippie.de> * Update docs/content/doc/packages/nuget.en-us.md Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2 years ago
Add Package Registry (#16510) * Added package store settings. * Added models. * Added generic package registry. * Added tests. * Added NuGet package registry. * Moved service index to api file. * Added NPM package registry. * Added Maven package registry. * Added PyPI package registry. * Summary is deprecated. * Changed npm name. * Sanitize project url. * Allow only scoped packages. * Added user interface. * Changed method name. * Added missing migration file. * Set page info. * Added documentation. * Added documentation links. * Fixed wrong error message. * Lint template files. * Fixed merge errors. * Fixed unit test storage path. * Switch to json module. * Added suggestions. * Added package webhook. * Add package api. * Fixed swagger file. * Fixed enum and comments. * Fixed NuGet pagination. * Print test names. * Added api tests. * Fixed access level. * Fix User unmarshal. * Added RubyGems package registry. * Fix lint. * Implemented io.Writer. * Added support for sha256/sha512 checksum files. * Improved maven-metadata.xml support. * Added support for symbol package uploads. * Added tests. * Added overview docs. * Added npm dependencies and keywords. * Added no-packages information. * Display file size. * Display asset count. * Fixed filter alignment. * Added package icons. * Formatted instructions. * Allow anonymous package downloads. * Fixed comments. * Fixed postgres test. * Moved file. * Moved models to models/packages. * Use correct error response format per client. * Use simpler search form. * Fixed IsProd. * Restructured data model. * Prevent empty filename. * Fix swagger. * Implemented user/org registry. * Implemented UI. * Use GetUserByIDCtx. * Use table for dependencies. * make svg * Added support for unscoped npm packages. * Add support for npm dist tags. * Added tests for npm tags. * Unlink packages if repository gets deleted. * Prevent user/org delete if a packages exist. * Use package unlink in repository service. * Added support for composer packages. * Restructured package docs. * Added missing tests. * Fixed generic content page. * Fixed docs. * Fixed swagger. * Added missing type. * Fixed ambiguous column. * Organize content store by sha256 hash. * Added admin package management. * Added support for sorting. * Add support for multiple identical versions/files. * Added missing repository unlink. * Added file properties. * make fmt * lint * Added Conan package registry. * Updated docs. * Unify package names. * Added swagger enum. * Use longer TEXT column type. * Removed version composite key. * Merged package and container registry. * Removed index. * Use dedicated package router. * Moved files to new location. * Updated docs. * Fixed JOIN order. * Fixed GROUP BY statement. * Fixed GROUP BY #2. * Added symbol server support. * Added more tests. * Set NOT NULL. * Added setting to disable package registries. * Moved auth into service. * refactor * Use ctx everywhere. * Added package cleanup task. * Changed packages path. * Added container registry. * Refactoring * Updated comparison. * Fix swagger. * Fixed table order. * Use token auth for npm routes. * Enabled ReverseProxy auth. * Added packages link for orgs. * Fixed anonymous org access. * Enable copy button for setup instructions. * Merge error * Added suggestions. * Fixed merge. * Handle "generic". * Added link for TODO. * Added suggestions. * Changed temporary buffer filename. * Added suggestions. * Apply suggestions from code review Co-authored-by: Thomas Boerger <thomas@webhippie.de> * Update docs/content/doc/packages/nuget.en-us.md Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2 years ago
Add Package Registry (#16510) * Added package store settings. * Added models. * Added generic package registry. * Added tests. * Added NuGet package registry. * Moved service index to api file. * Added NPM package registry. * Added Maven package registry. * Added PyPI package registry. * Summary is deprecated. * Changed npm name. * Sanitize project url. * Allow only scoped packages. * Added user interface. * Changed method name. * Added missing migration file. * Set page info. * Added documentation. * Added documentation links. * Fixed wrong error message. * Lint template files. * Fixed merge errors. * Fixed unit test storage path. * Switch to json module. * Added suggestions. * Added package webhook. * Add package api. * Fixed swagger file. * Fixed enum and comments. * Fixed NuGet pagination. * Print test names. * Added api tests. * Fixed access level. * Fix User unmarshal. * Added RubyGems package registry. * Fix lint. * Implemented io.Writer. * Added support for sha256/sha512 checksum files. * Improved maven-metadata.xml support. * Added support for symbol package uploads. * Added tests. * Added overview docs. * Added npm dependencies and keywords. * Added no-packages information. * Display file size. * Display asset count. * Fixed filter alignment. * Added package icons. * Formatted instructions. * Allow anonymous package downloads. * Fixed comments. * Fixed postgres test. * Moved file. * Moved models to models/packages. * Use correct error response format per client. * Use simpler search form. * Fixed IsProd. * Restructured data model. * Prevent empty filename. * Fix swagger. * Implemented user/org registry. * Implemented UI. * Use GetUserByIDCtx. * Use table for dependencies. * make svg * Added support for unscoped npm packages. * Add support for npm dist tags. * Added tests for npm tags. * Unlink packages if repository gets deleted. * Prevent user/org delete if a packages exist. * Use package unlink in repository service. * Added support for composer packages. * Restructured package docs. * Added missing tests. * Fixed generic content page. * Fixed docs. * Fixed swagger. * Added missing type. * Fixed ambiguous column. * Organize content store by sha256 hash. * Added admin package management. * Added support for sorting. * Add support for multiple identical versions/files. * Added missing repository unlink. * Added file properties. * make fmt * lint * Added Conan package registry. * Updated docs. * Unify package names. * Added swagger enum. * Use longer TEXT column type. * Removed version composite key. * Merged package and container registry. * Removed index. * Use dedicated package router. * Moved files to new location. * Updated docs. * Fixed JOIN order. * Fixed GROUP BY statement. * Fixed GROUP BY #2. * Added symbol server support. * Added more tests. * Set NOT NULL. * Added setting to disable package registries. * Moved auth into service. * refactor * Use ctx everywhere. * Added package cleanup task. * Changed packages path. * Added container registry. * Refactoring * Updated comparison. * Fix swagger. * Fixed table order. * Use token auth for npm routes. * Enabled ReverseProxy auth. * Added packages link for orgs. * Fixed anonymous org access. * Enable copy button for setup instructions. * Merge error * Added suggestions. * Fixed merge. * Handle "generic". * Added link for TODO. * Added suggestions. * Changed temporary buffer filename. * Added suggestions. * Apply suggestions from code review Co-authored-by: Thomas Boerger <thomas@webhippie.de> * Update docs/content/doc/packages/nuget.en-us.md Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
Template Repositories (#8768) * Start work on templates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Continue work Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix IsTemplate vs IsGenerated Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tabs vs spaces * Tabs vs Spaces * Add templates to API & start adding tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix integration tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Remove unused User Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move template tests to existing repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Minor re-check updates and cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix optionalbool Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test fixes and icon change Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add new user and repo for tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests (finally) Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update meta repo with env variables Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move generation to create page Combine with repo create template Modify API search to prioritize owner for repo Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests and coverage Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix swagger and JS lint Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix API searching for own private repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Change wording Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix repo search test. User had a private repo that didn't show up Signed-off-by: jolheiser <john.olheiser@gmail.com> * Another search test fix Signed-off-by: jolheiser <john.olheiser@gmail.com> * Clarify git content Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Feedback updates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add topics WIP Signed-off-by: jolheiser <john.olheiser@gmail.com> * Finish adding topics Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update locale Signed-off-by: jolheiser <john.olheiser@gmail.com>
4 years ago
Template Repositories (#8768) * Start work on templates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Continue work Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix IsTemplate vs IsGenerated Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tabs vs spaces * Tabs vs Spaces * Add templates to API & start adding tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix integration tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Remove unused User Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move template tests to existing repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Minor re-check updates and cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix optionalbool Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test fixes and icon change Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add new user and repo for tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests (finally) Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update meta repo with env variables Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move generation to create page Combine with repo create template Modify API search to prioritize owner for repo Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests and coverage Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix swagger and JS lint Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix API searching for own private repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Change wording Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix repo search test. User had a private repo that didn't show up Signed-off-by: jolheiser <john.olheiser@gmail.com> * Another search test fix Signed-off-by: jolheiser <john.olheiser@gmail.com> * Clarify git content Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Feedback updates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add topics WIP Signed-off-by: jolheiser <john.olheiser@gmail.com> * Finish adding topics Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update locale Signed-off-by: jolheiser <john.olheiser@gmail.com>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
6 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Auto merge pull requests when all checks succeeded via API (#9307) * Fix indention Signed-off-by: kolaente <k@knt.li> * Add option to merge a pr right now without waiting for the checks to succeed Signed-off-by: kolaente <k@knt.li> * Fix lint Signed-off-by: kolaente <k@knt.li> * Add scheduled pr merge to tables used for testing Signed-off-by: kolaente <k@knt.li> * Add status param to make GetPullRequestByHeadBranch reusable Signed-off-by: kolaente <k@knt.li> * Move "Merge now" to a seperate button to make the ui clearer Signed-off-by: kolaente <k@knt.li> * Update models/scheduled_pull_request_merge.go Co-authored-by: 赵智超 <1012112796@qq.com> * Update web_src/js/index.js Co-authored-by: 赵智超 <1012112796@qq.com> * Update web_src/js/index.js Co-authored-by: 赵智超 <1012112796@qq.com> * Re-add migration after merge * Fix frontend lint * Fix version compare * Add vendored dependencies * Add basic tets * Make sure the api route is capable of scheduling PRs for merging * Fix comparing version * make vendor * adopt refactor * apply suggestion: User -> Doer * init var once * Fix Test * Update templates/repo/issue/view_content/comments.tmpl * adopt * nits * next * code format * lint * use same name schema; rm CreateUnScheduledPRToAutoMergeComment * API: can not create schedule twice * Add TestGetBranchNamesForSha * nits * new go routine for each pull to merge * Update models/pull.go Co-authored-by: a1012112796 <1012112796@qq.com> * Update models/scheduled_pull_request_merge.go Co-authored-by: a1012112796 <1012112796@qq.com> * fix & add renaming sugestions * Update services/automerge/pull_auto_merge.go Co-authored-by: a1012112796 <1012112796@qq.com> * fix conflict relicts * apply latest refactors * fix: migration after merge * Update models/error.go Co-authored-by: delvh <dev.lh@web.de> * Update options/locale/locale_en-US.ini Co-authored-by: delvh <dev.lh@web.de> * Update options/locale/locale_en-US.ini Co-authored-by: delvh <dev.lh@web.de> * adapt latest refactors * fix test * use more context * skip potential edgecases * document func usage * GetBranchNamesForSha() -> GetRefsBySha() * start refactoring * ajust to new changes * nit * docu nit * the great check move * move checks for branchprotection into own package * resolve todo now ... * move & rename * unexport if posible * fix * check if merge is allowed before merge on scheduled pull * debugg * wording * improve SetDefaults & nits * NotAllowedToMerge -> DisallowedToMerge * fix test * merge files * use package "errors" * merge files * add string names * other implementation for gogit * adapt refactor * more context for models/pull.go * GetUserRepoPermission use context * more ctx * use context for loading pull head/base-repo * more ctx * more ctx * models.LoadIssueCtx() * models.LoadIssueCtx() * Handle pull_service.Merge in one DB transaction * add TODOs * next * next * next * more ctx * more ctx * Start refactoring structure of old pull code ... * move code into new packages * shorter names ... and finish **restructure** * Update models/branches.go Co-authored-by: zeripath <art27@cantab.net> * finish UpdateProtectBranch * more and fix * update datum * template: use "svg" helper * rename prQueue 2 prPatchCheckerQueue * handle automerge in queue * lock pull on git&db actions ... * lock pull on git&db actions ... * add TODO notes * the regex * transaction in tests * GetRepositoryByIDCtx * shorter table name and lint fix * close transaction bevore notify * Update models/pull.go * next * CheckPullMergable check all branch protections! * Update routers/web/repo/pull.go * CheckPullMergable check all branch protections! * Revert "PullService lock via pullID (#19520)" (for now...) This reverts commit 6cde7c9159a5ea75a10356feb7b8c7ad4c434a9a. * Update services/pull/check.go * Use for a repo action one database transaction * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Update services/issue/status.go Co-authored-by: delvh <dev.lh@web.de> * Update services/issue/status.go Co-authored-by: delvh <dev.lh@web.de> * use db.WithTx() * gofmt * make pr.GetDefaultMergeMessage() context aware * make MergePullRequestForm.SetDefaults context aware * use db.WithTx() * pull.SetMerged only with context * fix deadlock in `test-sqlite\#TestAPIBranchProtection` * dont forget templates * db.WithTx allow to set the parentCtx * handle db transaction in service packages but not router * issue_service.ChangeStatus just had caused another deadlock :/ it has to do something with how notification package is handled * if we merge a pull in one database transaktion, we get a lock, because merge infoce internal api that cant handle open db sessions to the same repo * ajust to current master * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * dont open db transaction in router * make generate-swagger * one _success less * wording nit * rm * adapt * remove not needed test files * rm less diff & use attr in JS * ... * Update services/repository/files/commit.go Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * ajust db schema for PullAutoMerge * skip broken pull refs * more context in error messages * remove webUI part for another pull * remove more WebUI only parts * API: add CancleAutoMergePR * Apply suggestions from code review Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * fix lint * Apply suggestions from code review * cancle -> cancel Co-authored-by: delvh <dev.lh@web.de> * change queue identifyer * fix swagger * prevent nil issue * fix and dont drop error * as per @zeripath * Update integrations/git_test.go Co-authored-by: delvh <dev.lh@web.de> * Update integrations/git_test.go Co-authored-by: delvh <dev.lh@web.de> * more declarative integration tests (dedup code) * use assert.False/True helper Co-authored-by: 赵智超 <1012112796@qq.com> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Sign merges, CRUD, Wiki and Repository initialisation with gpg key (#7631) This PR fixes #7598 by providing a configurable way of signing commits across the Gitea instance. Per repository configurability and import/generation of trusted secure keys is not provided by this PR - from a security PoV that's probably impossible to do properly. Similarly web-signing, that is asking the user to sign something, is not implemented - this could be done at a later stage however. ## Features - [x] If commit.gpgsign is set in .gitconfig sign commits and files created through repofiles. (merges should already have been signed.) - [x] Verify commits signed with the default gpg as valid - [x] Signer, Committer and Author can all be different - [x] Allow signer to be arbitrarily different - We still require the key to have an activated email on Gitea. A more complete implementation would be to use a keyserver and mark external-or-unactivated with an "unknown" trust level icon. - [x] Add a signing-key.gpg endpoint to get the default gpg pub key if available - Rather than add a fake web-flow user I've added this as an endpoint on /api/v1/signing-key.gpg - [x] Try to match the default key with a user on gitea - this is done at verification time - [x] Make things configurable? - app.ini configuration done - [x] when checking commits are signed need to check if they're actually verifiable too - [x] Add documentation I have decided that adjusting the docker to create a default gpg key is not the correct thing to do and therefore have not implemented this.
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API to get/edit wiki (#17278) * Add API to get/edit wiki * Add swagger docs, various improvements * fmt * Fix lint and rm comment * Add page parameter * Add pagination to pages * Add tests * fmt * Update func names * Update error handling * Update type name * Fix lint * Don't delete Home * Update func name * Update routers/api/v1/repo/wiki.go Co-authored-by: delvh <dev.lh@web.de> * Remove unnecessary check * Fix lint * Use English strings * Update integrations/api_wiki_test.go Co-authored-by: delvh <dev.lh@web.de> * Update func and test names * Remove unsed check and avoid duplicated error reports * Improve error handling * Return after error * Document 404 error * Update swagger * Fix lint * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Document file encoding * fmt * Apply suggestions * Use convert * Fix integration test * simplify permissions * unify duplicate key Title/Name * improve types & return UTC timestamps * improve types pt.2 - add WikiPageMetaData.LastCommit - add WikiPageMetaData.HTMLURL - replace WikiPageMetaData.Updated with .LastCommit.Committer.Created also delete convert.ToWikiPage(), as it received too many arguments and only had one callsite anyway. sorry for bad advice earlier 🙃 * WikiPage.Content is base64 encoded * simplify error handling in wikiContentsByName() * update swagger * fix & DRY findWikiRepoCommit() error handling ListWikiPages() previously wrote error twice when repo wiki didn't exist * rename Content -> ContentBase64 * Fix test * Fix tests * Update var name * suburl -> sub_url Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
Sign merges, CRUD, Wiki and Repository initialisation with gpg key (#7631) This PR fixes #7598 by providing a configurable way of signing commits across the Gitea instance. Per repository configurability and import/generation of trusted secure keys is not provided by this PR - from a security PoV that's probably impossible to do properly. Similarly web-signing, that is asking the user to sign something, is not implemented - this could be done at a later stage however. ## Features - [x] If commit.gpgsign is set in .gitconfig sign commits and files created through repofiles. (merges should already have been signed.) - [x] Verify commits signed with the default gpg as valid - [x] Signer, Committer and Author can all be different - [x] Allow signer to be arbitrarily different - We still require the key to have an activated email on Gitea. A more complete implementation would be to use a keyserver and mark external-or-unactivated with an "unknown" trust level icon. - [x] Add a signing-key.gpg endpoint to get the default gpg pub key if available - Rather than add a fake web-flow user I've added this as an endpoint on /api/v1/signing-key.gpg - [x] Try to match the default key with a user on gitea - this is done at verification time - [x] Make things configurable? - app.ini configuration done - [x] when checking commits are signed need to check if they're actually verifiable too - [x] Add documentation I have decided that adjusting the docker to create a default gpg key is not the correct thing to do and therefore have not implemented this.
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
API add/generalize pagination (#9452) * paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
4 years ago
User keypairs and HTTP signatures for ActivityPub federation using go-ap (#19133) * go.mod: add go-fed/{httpsig,activity/pub,activity/streams} dependency go get github.com/go-fed/activity/streams@master go get github.com/go-fed/activity/pub@master go get github.com/go-fed/httpsig@master * activitypub: implement /api/v1/activitypub/user/{username} (#14186) Return informations regarding a Person (as defined in ActivityStreams https://www.w3.org/TR/activitystreams-vocabulary/#dfn-person). Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: add the public key to Person (#14186) Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: go-fed conformant Clock instance Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: signing http client Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: implement the ReqSignature middleware Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: hack_16834 Signed-off-by: Loïc Dachary <loic@dachary.org> * Fix CI checks-backend errors with go mod tidy Signed-off-by: Anthony Wang <ta180m@pm.me> * Change 2021 to 2022, properly format package imports Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt and make generate-swagger Signed-off-by: Anthony Wang <ta180m@pm.me> * Use Gitea JSON library, add assert for pkp Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt again, fix err var redeclaration Signed-off-by: Anthony Wang <ta180m@pm.me> * Remove LogSQL from ActivityPub person test Signed-off-by: Anthony Wang <ta180m@pm.me> * Assert if json.Unmarshal succeeds Signed-off-by: Anthony Wang <ta180m@pm.me> * Cleanup, handle invalid usernames for ActivityPub person GET request Signed-off-by: Anthony Wang <ta180m@pm.me> * Rename hack_16834 to user_settings Signed-off-by: Anthony Wang <ta180m@pm.me> * Use the httplib module instead of http for GET requests * Clean up whitespace with make fmt * Use time.RFC1123 and make the http.Client proxy-aware * Check if digest algo is supported in setting module * Clean up some variable declarations * Remove unneeded copy * Use system timezone instead of setting.DefaultUILocation * Use named constant for httpsigExpirationTime * Make pubKey IRI #main-key instead of /#main-key * Move /#main-key to #main-key in tests * Implemented Webfinger endpoint. * Add visible check. * Add user profile as alias. * Add actor IRI and remote interaction URL to WebFinger response * fmt * Fix lint errors * Use go-ap instead of go-fed * Run go mod tidy to fix missing modules in go.mod and go.sum * make fmt * Convert remaining code to go-ap * Clean up go.sum * Fix JSON unmarshall error * Fix CI errors by adding @context to Person() and making sure types match * Correctly decode JSON in api_activitypub_person_test.go * Force CI rerun * Fix TestActivityPubPersonInbox segfault * Fix lint error * Use @mariusor's suggestions for idiomatic go-ap usage * Correctly add inbox/outbox IRIs to person * Code cleanup * Remove another LogSQL from ActivityPub person test * Move httpsig algos slice to an init() function * Add actor IRI and remote interaction URL to WebFinger response * Update TestWebFinger to check for ActivityPub IRI in aliases * make fmt * Force CI rerun * WebFinger: Add CORS header and fix Href -> Template for remote interactions The CORS header is needed due to https://datatracker.ietf.org/doc/html/rfc7033#section-5 and fixes some Peertube <-> Gitea federation issues * make lint-backend * Make sure Person endpoint has Content-Type application/activity+json and includes PreferredUsername, URL, and Icon Setting the correct Content-Type is essential for federating with Mastodon * Use UTC instead of GMT * Rename pkey to pubKey * Make sure HTTP request Date in GMT * make fmt * dont drop err * Make sure API responses always refer to username in original case Copied from what I wrote on #19133 discussion: Handling username case is a very tricky issue and I've already encountered a Mastodon <-> Gitea federation bug due to Gitea considering Ta180m and ta180m to be the same user while Mastodon thinks they are two different users. I think the best way forward is for Gitea to only use the original case version of the username for federation so other AP software don't get confused. * Move httpsig algs constant slice to modules/setting/federation.go * Add new federation settings to app.example.ini and config-cheat-sheet * Return if marshalling error * Make sure Person IRIs are generated correctly This commit ensures that if the setting.AppURL is something like "http://127.0.0.1:42567" (like in the integration tests), a trailing slash will be added after that URL. * If httpsig verification fails, fix Host header and try again This fixes a very rare bug when Gitea and another AP server (confirmed to happen with Mastodon) are running on the same machine, Gitea fails to verify incoming HTTP signatures. This is because the other AP server creates the sig with the public Gitea domain as the Host. However, when Gitea receives the request, the Host header is instead localhost, so the signature verification fails. Manually changing the host header to the correct value and trying the veification again fixes the bug. * Revert "If httpsig verification fails, fix Host header and try again" This reverts commit f53e46c721a037c55facb9200106a6b491bf834c. The bug was actually caused by nginx messing up the Host header when reverse-proxying since I didn't have the line `proxy_set_header Host $host;` in my nginx config for Gitea. * Go back to using ap.IRI to generate inbox and outbox IRIs * use const for key values * Update routers/web/webfinger.go * Use ctx.JSON in Person response to make code cleaner * Revert "Use ctx.JSON in Person response to make code cleaner" This doesn't work because the ctx.JSON() function already sends the response out and it's too late to edit the headers. This reverts commit 95aad988975be3393c76094864ed6ba962157e0c. * Use activitypub.ActivityStreamsContentType for Person response Content Type * Limit maximum ActivityPub request and response sizes to a configurable setting * Move setting key constants to models/user/setting_keys.go * Fix failing ActivityPubPerson integration test by checking the correct field for username * Add a warning about changing settings that can break federation * Add better comments * Don't multiply Federation.MaxSize by 1<<20 twice * Add more better comments * Fix failing ActivityPubMissingPerson test We now use ctx.ContextUser so the message printed out when a user does not exist is slightly different * make generate-swagger For some reason I didn't realize that /templates/swagger/v1_json.tmpl was machine-generated by make generate-swagger... I've been editing it by hand for three months! 🤦 * Move getting the RFC 2616 time to a separate function * More code cleanup * Update go-ap to fix empty liked collection and removed unneeded HTTP headers * go mod tidy * Add ed25519 to httpsig algorithms * Use go-ap/jsonld to add @context and marshal JSON * Change Gitea user agent from the default to Gitea/Version * Use ctx.ServerError and remove all remote interaction code from webfinger.go
1 year ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add support for corporate WeChat webhooks (#15910) * 企业微信webhook * 企业微信webhook * 企业微信webhook * Update templates/admin/hook_new.tmpl Co-authored-by: a1012112796 <1012112796@qq.com> * Update services/webhook/wechatwork.go Co-authored-by: a1012112796 <1012112796@qq.com> * 修善wechatwork * 修善wechatwork * fix * Update locale_cs-CZ.ini fix * fix build * fix * fix build * make webhooks.zh-cn.md * delet unnecessary blank line * delet unnecessary blank line * 企业微信webhook * 企业微信webhook * 企业微信webhook * Update templates/admin/hook_new.tmpl Co-authored-by: a1012112796 <1012112796@qq.com> * Update services/webhook/wechatwork.go Co-authored-by: a1012112796 <1012112796@qq.com> * 修善wechatwork * 修善wechatwork * fix * fix build * fix * fix build * make webhooks.zh-cn.md * delet unnecessary blank line * delet unnecessary blank line * 企业微信webhook * 企业微信webhook * 企业微信webhook * 企业微信webhook * 企业微信webhook * fix * fix * 企业微信webhook * 企业微信webhook * 企业微信webhook * fix wechat * fix wechat * fix wechat * fix wechat * Fix invalid params and typo of email templates (#16394) Signed-off-by: Meano <meanocat@gmail.com> * Add LRU mem cache implementation (#16226) The current default memory cache implementation is unbounded in size and number of objects cached. This is hardly ideal. This PR proposes creating a TwoQueue LRU cache as the underlying cache for Gitea. The cache is limited by the number of objects stored in the cache (rather than size) for simplicity. The default number of objects is 50000 - which is perhaps too small as most of our objects cached are going to be much less than 1kB. It may be worth considering using a different LRU implementation that actively limits sizes or avoids GC - however, this is just a beginning implementation. Signed-off-by: Andrew Thornton <art27@cantab.net> * [skip ci] Updated translations via Crowdin * Replace `plugins/docker` with `techknowlogick/drone-docker`in ci (#16407) * plugins/docker -> techknowlogick/drone-docker * It is multi-arch * docs: rewrite email setup (#16404) * Add intro for both the docs page and mailer methods * Fix numbering level in SMTP section * Recommends implicit TLS Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com> * Validate Issue Index before querying DB (#16406) * Fix external renderer (#16401) * fix external renderer * use GBackground context as fallback * no fallback, return error Co-authored-by: Lauris BH <lauris@nix.lv> * Add checkbox to delete pull branch after successful merge (#16049) * Add checkbox to delete pull branch after successful merge * Omit DeleteBranchAfterMerge field in json * Log a warning instead of error when PR head branch deleted * Add DefaultDeleteBranchAfterMerge to PullRequestConfig * Add support for delete_branch_after_merge via API * Fix for API: the branch should be deleted from the HEAD repo If head and base repo are the same, reuse the already opened ctx.Repo.GitRepo * Don't delegate to CleanupBranch, only reuse branch deletion code CleanupBranch contains too much logic that has already been performed by the Merge * Reuse gitrepo in MergePullRequest Co-authored-by: Andrew Thornton <art27@cantab.net> * [skip ci] Updated translations via Crowdin * Detect encoding changes while parsing diff (#16330) * Detect encoding changes while parsing diff * Let branch/tag name be a valid ref to get CI status (#16400) * fix #16384# * refactor: move shared helper func to utils package * extend Tests * use ctx.Repo.GitRepo if not nil * fix * fix * 企业微信webhook * 企业微信webhook * 企业微信webhook * fix build * fix build * Apply suggestions from code review Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: myheavily <myheavily> Co-authored-by: zhaoxin <gitea@fake.local> Co-authored-by: Meano <Meano@foxmail.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: GiteaBot <teabot@gitea.io> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Bagas Sanjaya <bagasdotme@gmail.com> Co-authored-by: Norwin <noerw@users.noreply.github.com> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Jimmy Praet <jimmy.praet@telenet.be> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Add configurable Trust Models (#11712) * Add configurable Trust Models Gitea's default signature verification model differs from GitHub. GitHub uses signatures to verify that the committer is who they say they are - meaning that when GitHub makes a signed commit it must be the committer. The GitHub model prevents re-publishing of commits after revocation of a key and prevents re-signing of other people's commits to create a completely trusted repository signed by one key or a set of trusted keys. The default behaviour of Gitea in contrast is to always display the avatar and information related to a signature. This allows signatures to be decoupled from the committer. That being said, allowing arbitary users to present other peoples commits as theirs is not necessarily desired therefore we have a trust model whereby signatures from collaborators are marked trusted, signatures matching the commit line are marked untrusted and signatures that match a user in the db but not the committer line are marked unmatched. The problem with this model is that this conflicts with Github therefore we need to provide an option to allow users to choose the Github model should they wish to. Signed-off-by: Andrew Thornton <art27@cantab.net> * Adjust locale strings Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @6543 Co-authored-by: 6543 <6543@obermui.de> * Update models/gpg_key.go * Add migration for repository Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
3 years ago
Add configurable Trust Models (#11712) * Add configurable Trust Models Gitea's default signature verification model differs from GitHub. GitHub uses signatures to verify that the committer is who they say they are - meaning that when GitHub makes a signed commit it must be the committer. The GitHub model prevents re-publishing of commits after revocation of a key and prevents re-signing of other people's commits to create a completely trusted repository signed by one key or a set of trusted keys. The default behaviour of Gitea in contrast is to always display the avatar and information related to a signature. This allows signatures to be decoupled from the committer. That being said, allowing arbitary users to present other peoples commits as theirs is not necessarily desired therefore we have a trust model whereby signatures from collaborators are marked trusted, signatures matching the commit line are marked untrusted and signatures that match a user in the db but not the committer line are marked unmatched. The problem with this model is that this conflicts with Github therefore we need to provide an option to allow users to choose the Github model should they wish to. Signed-off-by: Andrew Thornton <art27@cantab.net> * Adjust locale strings Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @6543 Co-authored-by: 6543 <6543@obermui.de> * Update models/gpg_key.go * Add migration for repository Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
3 years ago
Team permission allow different unit has different permission (#17811) * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * fix * gofumpt * Integration test for migration (#18124) integrations: basic test for Gitea {dump,restore}-repo This is a first step for integration testing of DumpRepository and RestoreRepository. It: runs a Gitea server, dumps a repo via DumpRepository to the filesystem, restores the repo via RestoreRepository from the filesystem, dumps the restored repository to the filesystem, compares the first and second dump and expects them to be identical The verification is trivial and the goal is to add more tests for each topic of the dump. Signed-off-by: Loïc Dachary <loic@dachary.org> * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * Fix bug Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Aravinth Manivannan <realaravinth@batsense.net>
2 years ago
Add API to get/edit wiki (#17278) * Add API to get/edit wiki * Add swagger docs, various improvements * fmt * Fix lint and rm comment * Add page parameter * Add pagination to pages * Add tests * fmt * Update func names * Update error handling * Update type name * Fix lint * Don't delete Home * Update func name * Update routers/api/v1/repo/wiki.go Co-authored-by: delvh <dev.lh@web.de> * Remove unnecessary check * Fix lint * Use English strings * Update integrations/api_wiki_test.go Co-authored-by: delvh <dev.lh@web.de> * Update func and test names * Remove unsed check and avoid duplicated error reports * Improve error handling * Return after error * Document 404 error * Update swagger * Fix lint * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Document file encoding * fmt * Apply suggestions * Use convert * Fix integration test * simplify permissions * unify duplicate key Title/Name * improve types & return UTC timestamps * improve types pt.2 - add WikiPageMetaData.LastCommit - add WikiPageMetaData.HTMLURL - replace WikiPageMetaData.Updated with .LastCommit.Committer.Created also delete convert.ToWikiPage(), as it received too many arguments and only had one callsite anyway. sorry for bad advice earlier 🙃 * WikiPage.Content is base64 encoded * simplify error handling in wikiContentsByName() * update swagger * fix & DRY findWikiRepoCommit() error handling ListWikiPages() previously wrote error twice when repo wiki didn't exist * rename Content -> ContentBase64 * Fix test * Fix tests * Update var name * suburl -> sub_url Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Template Repositories (#8768) * Start work on templates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Continue work Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix IsTemplate vs IsGenerated Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tabs vs spaces * Tabs vs Spaces * Add templates to API & start adding tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix integration tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Remove unused User Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move template tests to existing repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Minor re-check updates and cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix optionalbool Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test fixes and icon change Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add new user and repo for tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests (finally) Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update meta repo with env variables Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move generation to create page Combine with repo create template Modify API search to prioritize owner for repo Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests and coverage Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix swagger and JS lint Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix API searching for own private repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Change wording Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix repo search test. User had a private repo that didn't show up Signed-off-by: jolheiser <john.olheiser@gmail.com> * Another search test fix Signed-off-by: jolheiser <john.olheiser@gmail.com> * Clarify git content Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Feedback updates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add topics WIP Signed-off-by: jolheiser <john.olheiser@gmail.com> * Finish adding topics Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update locale Signed-off-by: jolheiser <john.olheiser@gmail.com>
4 years ago
Team permission allow different unit has different permission (#17811) * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * fix * gofumpt * Integration test for migration (#18124) integrations: basic test for Gitea {dump,restore}-repo This is a first step for integration testing of DumpRepository and RestoreRepository. It: runs a Gitea server, dumps a repo via DumpRepository to the filesystem, restores the repo via RestoreRepository from the filesystem, dumps the restored repository to the filesystem, compares the first and second dump and expects them to be identical The verification is trivial and the goal is to add more tests for each topic of the dump. Signed-off-by: Loïc Dachary <loic@dachary.org> * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * Fix bug Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Aravinth Manivannan <realaravinth@batsense.net>
2 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
Auto merge pull requests when all checks succeeded via API (#9307) * Fix indention Signed-off-by: kolaente <k@knt.li> * Add option to merge a pr right now without waiting for the checks to succeed Signed-off-by: kolaente <k@knt.li> * Fix lint Signed-off-by: kolaente <k@knt.li> * Add scheduled pr merge to tables used for testing Signed-off-by: kolaente <k@knt.li> * Add status param to make GetPullRequestByHeadBranch reusable Signed-off-by: kolaente <k@knt.li> * Move "Merge now" to a seperate button to make the ui clearer Signed-off-by: kolaente <k@knt.li> * Update models/scheduled_pull_request_merge.go Co-authored-by: 赵智超 <1012112796@qq.com> * Update web_src/js/index.js Co-authored-by: 赵智超 <1012112796@qq.com> * Update web_src/js/index.js Co-authored-by: 赵智超 <1012112796@qq.com> * Re-add migration after merge * Fix frontend lint * Fix version compare * Add vendored dependencies * Add basic tets * Make sure the api route is capable of scheduling PRs for merging * Fix comparing version * make vendor * adopt refactor * apply suggestion: User -> Doer * init var once * Fix Test * Update templates/repo/issue/view_content/comments.tmpl * adopt * nits * next * code format * lint * use same name schema; rm CreateUnScheduledPRToAutoMergeComment * API: can not create schedule twice * Add TestGetBranchNamesForSha * nits * new go routine for each pull to merge * Update models/pull.go Co-authored-by: a1012112796 <1012112796@qq.com> * Update models/scheduled_pull_request_merge.go Co-authored-by: a1012112796 <1012112796@qq.com> * fix & add renaming sugestions * Update services/automerge/pull_auto_merge.go Co-authored-by: a1012112796 <1012112796@qq.com> * fix conflict relicts * apply latest refactors * fix: migration after merge * Update models/error.go Co-authored-by: delvh <dev.lh@web.de> * Update options/locale/locale_en-US.ini Co-authored-by: delvh <dev.lh@web.de> * Update options/locale/locale_en-US.ini Co-authored-by: delvh <dev.lh@web.de> * adapt latest refactors * fix test * use more context * skip potential edgecases * document func usage * GetBranchNamesForSha() -> GetRefsBySha() * start refactoring * ajust to new changes * nit * docu nit * the great check move * move checks for branchprotection into own package * resolve todo now ... * move & rename * unexport if posible * fix * check if merge is allowed before merge on scheduled pull * debugg * wording * improve SetDefaults & nits * NotAllowedToMerge -> DisallowedToMerge * fix test * merge files * use package "errors" * merge files * add string names * other implementation for gogit * adapt refactor * more context for models/pull.go * GetUserRepoPermission use context * more ctx * use context for loading pull head/base-repo * more ctx * more ctx * models.LoadIssueCtx() * models.LoadIssueCtx() * Handle pull_service.Merge in one DB transaction * add TODOs * next * next * next * more ctx * more ctx * Start refactoring structure of old pull code ... * move code into new packages * shorter names ... and finish **restructure** * Update models/branches.go Co-authored-by: zeripath <art27@cantab.net> * finish UpdateProtectBranch * more and fix * update datum * template: use "svg" helper * rename prQueue 2 prPatchCheckerQueue * handle automerge in queue * lock pull on git&db actions ... * lock pull on git&db actions ... * add TODO notes * the regex * transaction in tests * GetRepositoryByIDCtx * shorter table name and lint fix * close transaction bevore notify * Update models/pull.go * next * CheckPullMergable check all branch protections! * Update routers/web/repo/pull.go * CheckPullMergable check all branch protections! * Revert "PullService lock via pullID (#19520)" (for now...) This reverts commit 6cde7c9159a5ea75a10356feb7b8c7ad4c434a9a. * Update services/pull/check.go * Use for a repo action one database transaction * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Update services/issue/status.go Co-authored-by: delvh <dev.lh@web.de> * Update services/issue/status.go Co-authored-by: delvh <dev.lh@web.de> * use db.WithTx() * gofmt * make pr.GetDefaultMergeMessage() context aware * make MergePullRequestForm.SetDefaults context aware * use db.WithTx() * pull.SetMerged only with context * fix deadlock in `test-sqlite\#TestAPIBranchProtection` * dont forget templates * db.WithTx allow to set the parentCtx * handle db transaction in service packages but not router * issue_service.ChangeStatus just had caused another deadlock :/ it has to do something with how notification package is handled * if we merge a pull in one database transaktion, we get a lock, because merge infoce internal api that cant handle open db sessions to the same repo * ajust to current master * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * dont open db transaction in router * make generate-swagger * one _success less * wording nit * rm * adapt * remove not needed test files * rm less diff & use attr in JS * ... * Update services/repository/files/commit.go Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * ajust db schema for PullAutoMerge * skip broken pull refs * more context in error messages * remove webUI part for another pull * remove more WebUI only parts * API: add CancleAutoMergePR * Apply suggestions from code review Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * fix lint * Apply suggestions from code review * cancle -> cancel Co-authored-by: delvh <dev.lh@web.de> * change queue identifyer * fix swagger * prevent nil issue * fix and dont drop error * as per @zeripath * Update integrations/git_test.go Co-authored-by: delvh <dev.lh@web.de> * Update integrations/git_test.go Co-authored-by: delvh <dev.lh@web.de> * more declarative integration tests (dedup code) * use assert.False/True helper Co-authored-by: 赵智超 <1012112796@qq.com> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
Add LFS Migration and Mirror (#14726) * Implemented LFS client. * Implemented scanning for pointer files. * Implemented downloading of lfs files. * Moved model-dependent code into services. * Removed models dependency. Added TryReadPointerFromBuffer. * Migrated code from service to module. * Centralised storage creation. * Removed dependency from models. * Moved ContentStore into modules. * Share structs between server and client. * Moved method to services. * Implemented lfs download on clone. * Implemented LFS sync on clone and mirror update. * Added form fields. * Updated templates. * Fixed condition. * Use alternate endpoint. * Added missing methods. * Fixed typo and make linter happy. * Detached pointer parser from gogit dependency. * Fixed TestGetLFSRange test. * Added context to support cancellation. * Use ReadFull to probably read more data. * Removed duplicated code from models. * Moved scan implementation into pointer_scanner_nogogit. * Changed method name. * Added comments. * Added more/specific log/error messages. * Embedded lfs.Pointer into models.LFSMetaObject. * Moved code from models to module. * Moved code from models to module. * Moved code from models to module. * Reduced pointer usage. * Embedded type. * Use promoted fields. * Fixed unexpected eof. * Added unit tests. * Implemented migration of local file paths. * Show an error on invalid LFS endpoints. * Hide settings if not used. * Added LFS info to mirror struct. * Fixed comment. * Check LFS endpoint. * Manage LFS settings from mirror page. * Fixed selector. * Adjusted selector. * Added more tests. * Added local filesystem migration test. * Fixed typo. * Reset settings. * Added special windows path handling. * Added unit test for HTTPClient. * Added unit test for BasicTransferAdapter. * Moved into util package. * Test if LFS endpoint is allowed. * Added support for git:// * Just use a static placeholder as the displayed url may be invalid. * Reverted to original code. * Added "Advanced Settings". * Updated wording. * Added discovery info link. * Implemented suggestion. * Fixed missing format parameter. * Added Pointer.IsValid(). * Always remove model on error. * Added suggestions. * Use channel instead of array. * Update routers/repo/migrate.go * fmt Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: zeripath <art27@cantab.net>
3 years ago
Add Package Registry (#16510) * Added package store settings. * Added models. * Added generic package registry. * Added tests. * Added NuGet package registry. * Moved service index to api file. * Added NPM package registry. * Added Maven package registry. * Added PyPI package registry. * Summary is deprecated. * Changed npm name. * Sanitize project url. * Allow only scoped packages. * Added user interface. * Changed method name. * Added missing migration file. * Set page info. * Added documentation. * Added documentation links. * Fixed wrong error message. * Lint template files. * Fixed merge errors. * Fixed unit test storage path. * Switch to json module. * Added suggestions. * Added package webhook. * Add package api. * Fixed swagger file. * Fixed enum and comments. * Fixed NuGet pagination. * Print test names. * Added api tests. * Fixed access level. * Fix User unmarshal. * Added RubyGems package registry. * Fix lint. * Implemented io.Writer. * Added support for sha256/sha512 checksum files. * Improved maven-metadata.xml support. * Added support for symbol package uploads. * Added tests. * Added overview docs. * Added npm dependencies and keywords. * Added no-packages information. * Display file size. * Display asset count. * Fixed filter alignment. * Added package icons. * Formatted instructions. * Allow anonymous package downloads. * Fixed comments. * Fixed postgres test. * Moved file. * Moved models to models/packages. * Use correct error response format per client. * Use simpler search form. * Fixed IsProd. * Restructured data model. * Prevent empty filename. * Fix swagger. * Implemented user/org registry. * Implemented UI. * Use GetUserByIDCtx. * Use table for dependencies. * make svg * Added support for unscoped npm packages. * Add support for npm dist tags. * Added tests for npm tags. * Unlink packages if repository gets deleted. * Prevent user/org delete if a packages exist. * Use package unlink in repository service. * Added support for composer packages. * Restructured package docs. * Added missing tests. * Fixed generic content page. * Fixed docs. * Fixed swagger. * Added missing type. * Fixed ambiguous column. * Organize content store by sha256 hash. * Added admin package management. * Added support for sorting. * Add support for multiple identical versions/files. * Added missing repository unlink. * Added file properties. * make fmt * lint * Added Conan package registry. * Updated docs. * Unify package names. * Added swagger enum. * Use longer TEXT column type. * Removed version composite key. * Merged package and container registry. * Removed index. * Use dedicated package router. * Moved files to new location. * Updated docs. * Fixed JOIN order. * Fixed GROUP BY statement. * Fixed GROUP BY #2. * Added symbol server support. * Added more tests. * Set NOT NULL. * Added setting to disable package registries. * Moved auth into service. * refactor * Use ctx everywhere. * Added package cleanup task. * Changed packages path. * Added container registry. * Refactoring * Updated comparison. * Fix swagger. * Fixed table order. * Use token auth for npm routes. * Enabled ReverseProxy auth. * Added packages link for orgs. * Fixed anonymous org access. * Enable copy button for setup instructions. * Merge error * Added suggestions. * Fixed merge. * Handle "generic". * Added link for TODO. * Added suggestions. * Changed temporary buffer filename. * Added suggestions. * Apply suggestions from code review Co-authored-by: Thomas Boerger <thomas@webhippie.de> * Update docs/content/doc/packages/nuget.en-us.md Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2 years ago
Sign merges, CRUD, Wiki and Repository initialisation with gpg key (#7631) This PR fixes #7598 by providing a configurable way of signing commits across the Gitea instance. Per repository configurability and import/generation of trusted secure keys is not provided by this PR - from a security PoV that's probably impossible to do properly. Similarly web-signing, that is asking the user to sign something, is not implemented - this could be done at a later stage however. ## Features - [x] If commit.gpgsign is set in .gitconfig sign commits and files created through repofiles. (merges should already have been signed.) - [x] Verify commits signed with the default gpg as valid - [x] Signer, Committer and Author can all be different - [x] Allow signer to be arbitrarily different - We still require the key to have an activated email on Gitea. A more complete implementation would be to use a keyserver and mark external-or-unactivated with an "unknown" trust level icon. - [x] Add a signing-key.gpg endpoint to get the default gpg pub key if available - Rather than add a fake web-flow user I've added this as an endpoint on /api/v1/signing-key.gpg - [x] Try to match the default key with a user on gitea - this is done at verification time - [x] Make things configurable? - app.ini configuration done - [x] when checking commits are signed need to check if they're actually verifiable too - [x] Add documentation I have decided that adjusting the docker to create a default gpg key is not the correct thing to do and therefore have not implemented this.
4 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Issue due date (#3794) * Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Repository avatars (#6986) * Repository avatars - first variant of code from old work for gogs - add migration 87 - add new option in app.ini - add en-US locale string - add new class in repository.less * Add changed index.css, remove unused template name * Update en-us doc about configuration options * Add comments to new functions, add new option to docker app.ini * Add comment for lint * Remove variable, not needed * Fix formatting * Update swagger api template * Check if avatar exists * Fix avatar link/path checks * Typo * TEXT column can't have a default value * Fixes: - remove old avatar file on upload - use ID in name of avatar file - users may upload same files - add simple tests * Fix fmt check * Generate PNG instead of "static" GIF * More informative comment * Fix error message * Update avatar upload checks: - add file size check - add new option - update config docs - add new string to en-us locale * Fixes: - use FileHEader field for check file size - add new test - upload big image * Fix formatting * Update comments * Update log message * Removed wrong style - not needed * Use Sync2 to migrate * Update repos list view - bigger avatar - fix html blocks alignment * A little adjust avatar size * Use small icons for explore/repo list * Use new cool avatar preparation func by @lafriks * Missing changes for new function * Remove unused import, move imports * Missed new option definition in app.ini Add file size check in user/profile avatar upload * Use smaller field length for Avatar * Use session to update repo DB data, update DeleteAvatar - use session too * Fix err variable definition * As suggested @lafriks - return as soon as possible, code readability
5 years ago
Template Repositories (#8768) * Start work on templates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Continue work Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix IsTemplate vs IsGenerated Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tabs vs spaces * Tabs vs Spaces * Add templates to API & start adding tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix integration tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Remove unused User Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move template tests to existing repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Minor re-check updates and cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test cleanup Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix optionalbool Signed-off-by: jolheiser <john.olheiser@gmail.com> * make fmt Signed-off-by: jolheiser <john.olheiser@gmail.com> * Test fixes and icon change Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add new user and repo for tests Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests (finally) Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update meta repo with env variables Signed-off-by: jolheiser <john.olheiser@gmail.com> * Move generation to create page Combine with repo create template Modify API search to prioritize owner for repo Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix tests and coverage Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix swagger and JS lint Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix API searching for own private repos Signed-off-by: jolheiser <john.olheiser@gmail.com> * Change wording Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix repo search test. User had a private repo that didn't show up Signed-off-by: jolheiser <john.olheiser@gmail.com> * Another search test fix Signed-off-by: jolheiser <john.olheiser@gmail.com> * Clarify git content Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> * Feedback updates Signed-off-by: jolheiser <john.olheiser@gmail.com> * Add topics WIP Signed-off-by: jolheiser <john.olheiser@gmail.com> * Finish adding topics Signed-off-by: jolheiser <john.olheiser@gmail.com> * Update locale Signed-off-by: jolheiser <john.olheiser@gmail.com>
4 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
Allow cross-repository dependencies on issues (#7901) * in progress changes for #7405, added ability to add cross-repo dependencies * removed unused repolink var * fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes * reverted removal of string in local files becasue these are done via crowdin, not updated manually * removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review * changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result * simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository * made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line) * replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard * some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies * added Name to the RepositoryMeta struct * updated swagger doc * fixed total count for link header on SearchIssues * fixed indentation * fixed aligment of remove icon on dependencies in issue sidebar * removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block) * reverting .css change, somehow missed or forgot that less is used * updated less file and generated css; updated sidebar template with styles to line up delete and issue index * added ordering to the blocked by/depends on queries * fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository) * re-applied my swagger changes after merge * fixed split string condition in issue search * changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter * when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled * updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here * fixed incorrect setting of user id parameter in search repos call
4 years ago
Team permission allow different unit has different permission (#17811) * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * fix * gofumpt * Integration test for migration (#18124) integrations: basic test for Gitea {dump,restore}-repo This is a first step for integration testing of DumpRepository and RestoreRepository. It: runs a Gitea server, dumps a repo via DumpRepository to the filesystem, restores the repo via RestoreRepository from the filesystem, dumps the restored repository to the filesystem, compares the first and second dump and expects them to be identical The verification is trivial and the goal is to add more tests for each topic of the dump. Signed-off-by: Loïc Dachary <loic@dachary.org> * Team permission allow different unit has different permission * Finish the interface and the logic * Fix lint * Fix translation * align center for table cell content * Fix fixture * merge * Fix test * Add deprecated * Improve code * Add tooltip * Fix swagger * Fix newline * Fix tests * Fix tests * Fix test * Fix test * Max permission of external wiki and issues should be read * Move team units with limited max level below units table * Update label and column names * Some improvements * Fix lint * Some improvements * Fix template variables * Add permission docs * improve doc * Fix fixture * Fix bug * Fix some bug * Fix bug Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Aravinth Manivannan <realaravinth@batsense.net>
2 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API to get/edit wiki (#17278) * Add API to get/edit wiki * Add swagger docs, various improvements * fmt * Fix lint and rm comment * Add page parameter * Add pagination to pages * Add tests * fmt * Update func names * Update error handling * Update type name * Fix lint * Don't delete Home * Update func name * Update routers/api/v1/repo/wiki.go Co-authored-by: delvh <dev.lh@web.de> * Remove unnecessary check * Fix lint * Use English strings * Update integrations/api_wiki_test.go Co-authored-by: delvh <dev.lh@web.de> * Update func and test names * Remove unsed check and avoid duplicated error reports * Improve error handling * Return after error * Document 404 error * Update swagger * Fix lint * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Document file encoding * fmt * Apply suggestions * Use convert * Fix integration test * simplify permissions * unify duplicate key Title/Name * improve types & return UTC timestamps * improve types pt.2 - add WikiPageMetaData.LastCommit - add WikiPageMetaData.HTMLURL - replace WikiPageMetaData.Updated with .LastCommit.Committer.Created also delete convert.ToWikiPage(), as it received too many arguments and only had one callsite anyway. sorry for bad advice earlier 🙃 * WikiPage.Content is base64 encoded * simplify error handling in wikiContentsByName() * update swagger * fix & DRY findWikiRepoCommit() error handling ListWikiPages() previously wrote error twice when repo wiki didn't exist * rename Content -> ContentBase64 * Fix test * Fix tests * Update var name * suburl -> sub_url Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
User keypairs and HTTP signatures for ActivityPub federation using go-ap (#19133) * go.mod: add go-fed/{httpsig,activity/pub,activity/streams} dependency go get github.com/go-fed/activity/streams@master go get github.com/go-fed/activity/pub@master go get github.com/go-fed/httpsig@master * activitypub: implement /api/v1/activitypub/user/{username} (#14186) Return informations regarding a Person (as defined in ActivityStreams https://www.w3.org/TR/activitystreams-vocabulary/#dfn-person). Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: add the public key to Person (#14186) Refs: https://github.com/go-gitea/gitea/issues/14186 Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: go-fed conformant Clock instance Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: signing http client Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: implement the ReqSignature middleware Signed-off-by: Loïc Dachary <loic@dachary.org> * activitypub: hack_16834 Signed-off-by: Loïc Dachary <loic@dachary.org> * Fix CI checks-backend errors with go mod tidy Signed-off-by: Anthony Wang <ta180m@pm.me> * Change 2021 to 2022, properly format package imports Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt and make generate-swagger Signed-off-by: Anthony Wang <ta180m@pm.me> * Use Gitea JSON library, add assert for pkp Signed-off-by: Anthony Wang <ta180m@pm.me> * Run make fmt again, fix err var redeclaration Signed-off-by: Anthony Wang <ta180m@pm.me> * Remove LogSQL from ActivityPub person test Signed-off-by: Anthony Wang <ta180m@pm.me> * Assert if json.Unmarshal succeeds Signed-off-by: Anthony Wang <ta180m@pm.me> * Cleanup, handle invalid usernames for ActivityPub person GET request Signed-off-by: Anthony Wang <ta180m@pm.me> * Rename hack_16834 to user_settings Signed-off-by: Anthony Wang <ta180m@pm.me> * Use the httplib module instead of http for GET requests * Clean up whitespace with make fmt * Use time.RFC1123 and make the http.Client proxy-aware * Check if digest algo is supported in setting module * Clean up some variable declarations * Remove unneeded copy * Use system timezone instead of setting.DefaultUILocation * Use named constant for httpsigExpirationTime * Make pubKey IRI #main-key instead of /#main-key * Move /#main-key to #main-key in tests * Implemented Webfinger endpoint. * Add visible check. * Add user profile as alias. * Add actor IRI and remote interaction URL to WebFinger response * fmt * Fix lint errors * Use go-ap instead of go-fed * Run go mod tidy to fix missing modules in go.mod and go.sum * make fmt * Convert remaining code to go-ap * Clean up go.sum * Fix JSON unmarshall error * Fix CI errors by adding @context to Person() and making sure types match * Correctly decode JSON in api_activitypub_person_test.go * Force CI rerun * Fix TestActivityPubPersonInbox segfault * Fix lint error * Use @mariusor's suggestions for idiomatic go-ap usage * Correctly add inbox/outbox IRIs to person * Code cleanup * Remove another LogSQL from ActivityPub person test * Move httpsig algos slice to an init() function * Add actor IRI and remote interaction URL to WebFinger response * Update TestWebFinger to check for ActivityPub IRI in aliases * make fmt * Force CI rerun * WebFinger: Add CORS header and fix Href -> Template for remote interactions The CORS header is needed due to https://datatracker.ietf.org/doc/html/rfc7033#section-5 and fixes some Peertube <-> Gitea federation issues * make lint-backend * Make sure Person endpoint has Content-Type application/activity+json and includes PreferredUsername, URL, and Icon Setting the correct Content-Type is essential for federating with Mastodon * Use UTC instead of GMT * Rename pkey to pubKey * Make sure HTTP request Date in GMT * make fmt * dont drop err * Make sure API responses always refer to username in original case Copied from what I wrote on #19133 discussion: Handling username case is a very tricky issue and I've already encountered a Mastodon <-> Gitea federation bug due to Gitea considering Ta180m and ta180m to be the same user while Mastodon thinks they are two different users. I think the best way forward is for Gitea to only use the original case version of the username for federation so other AP software don't get confused. * Move httpsig algs constant slice to modules/setting/federation.go * Add new federation settings to app.example.ini and config-cheat-sheet * Return if marshalling error * Make sure Person IRIs are generated correctly This commit ensures that if the setting.AppURL is something like "http://127.0.0.1:42567" (like in the integration tests), a trailing slash will be added after that URL. * If httpsig verification fails, fix Host header and try again This fixes a very rare bug when Gitea and another AP server (confirmed to happen with Mastodon) are running on the same machine, Gitea fails to verify incoming HTTP signatures. This is because the other AP server creates the sig with the public Gitea domain as the Host. However, when Gitea receives the request, the Host header is instead localhost, so the signature verification fails. Manually changing the host header to the correct value and trying the veification again fixes the bug. * Revert "If httpsig verification fails, fix Host header and try again" This reverts commit f53e46c721a037c55facb9200106a6b491bf834c. The bug was actually caused by nginx messing up the Host header when reverse-proxying since I didn't have the line `proxy_set_header Host $host;` in my nginx config for Gitea. * Go back to using ap.IRI to generate inbox and outbox IRIs * use const for key values * Update routers/web/webfinger.go * Use ctx.JSON in Person response to make code cleaner * Revert "Use ctx.JSON in Person response to make code cleaner" This doesn't work because the ctx.JSON() function already sends the response out and it's too late to edit the headers. This reverts commit 95aad988975be3393c76094864ed6ba962157e0c. * Use activitypub.ActivityStreamsContentType for Person response Content Type * Limit maximum ActivityPub request and response sizes to a configurable setting * Move setting key constants to models/user/setting_keys.go * Fix failing ActivityPubPerson integration test by checking the correct field for username * Add a warning about changing settings that can break federation * Add better comments * Don't multiply Federation.MaxSize by 1<<20 twice * Add more better comments * Fix failing ActivityPubMissingPerson test We now use ctx.ContextUser so the message printed out when a user does not exist is slightly different * make generate-swagger For some reason I didn't realize that /templates/swagger/v1_json.tmpl was machine-generated by make generate-swagger... I've been editing it by hand for three months! 🤦 * Move getting the RFC 2616 time to a separate function * More code cleanup * Update go-ap to fix empty liked collection and removed unneeded HTTP headers * go mod tidy * Add ed25519 to httpsig algorithms * Use go-ap/jsonld to add @context and marshal JSON * Change Gitea user agent from the default to Gitea/Version * Use ctx.ServerError and remove all remote interaction code from webfinger.go
1 year ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Attachment API (#3478) * Add Attachment API * repos/:owner/:repo/releases (add attachments) * repos/:owner/:repo/releases/:id (add attachments) * repos/:owner/:repo/releases/:id/attachments * repos/:owner/:repo/releases/:id/attachments/:attachment_id Signed-off-by: Jonas Franz <info@jonasfranz.de> * Add unit tests for new attachment functions Fix comments Signed-off-by: Jonas Franz <info@jonasfranz.software> * fix lint * Update vendor.json Signed-off-by: Jonas Franz <info@jonasfranz.software> * remove version of sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix unit tests Add missing license header Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add CreateReleaseAttachment Add EditReleaseAttachment Add DeleteReleaseAttachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add filename query parameter for choosing another name for an attachment Signed-off-by: Jonas Franz <info@jonasfranz.software> * Fix order of imports Signed-off-by: Jonas Franz <info@jonasfranz.software> * Restricting updatable attachment columns Signed-off-by: Jonas Franz <info@jonasfranz.software> * gofmt Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update go-sdk Replace Attachments with Assets Signed-off-by: Jonas Franz <info@jonasfranz.de> * Update go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.de> * Updating go-sdk and regenerating swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Add missing file of go-sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Change origin of code.gitea.io/sdk to code.gitea.io/sdk Update code.gitea.io/sdk Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update swagger Signed-off-by: Jonas Franz <info@jonasfranz.software> * Update updateAttachment
6 years ago
Add Package Registry (#16510) * Added package store settings. * Added models. * Added generic package registry. * Added tests. * Added NuGet package registry. * Moved service index to api file. * Added NPM package registry. * Added Maven package registry. * Added PyPI package registry. * Summary is deprecated. * Changed npm name. * Sanitize project url. * Allow only scoped packages. * Added user interface. * Changed method name. * Added missing migration file. * Set page info. * Added documentation. * Added documentation links. * Fixed wrong error message. * Lint template files. * Fixed merge errors. * Fixed unit test storage path. * Switch to json module. * Added suggestions. * Added package webhook. * Add package api. * Fixed swagger file. * Fixed enum and comments. * Fixed NuGet pagination. * Print test names. * Added api tests. * Fixed access level. * Fix User unmarshal. * Added RubyGems package registry. * Fix lint. * Implemented io.Writer. * Added support for sha256/sha512 checksum files. * Improved maven-metadata.xml support. * Added support for symbol package uploads. * Added tests. * Added overview docs. * Added npm dependencies and keywords. * Added no-packages information. * Display file size. * Display asset count. * Fixed filter alignment. * Added package icons. * Formatted instructions. * Allow anonymous package downloads. * Fixed comments. * Fixed postgres test. * Moved file. * Moved models to models/packages. * Use correct error response format per client. * Use simpler search form. * Fixed IsProd. * Restructured data model. * Prevent empty filename. * Fix swagger. * Implemented user/org registry. * Implemented UI. * Use GetUserByIDCtx. * Use table for dependencies. * make svg * Added support for unscoped npm packages. * Add support for npm dist tags. * Added tests for npm tags. * Unlink packages if repository gets deleted. * Prevent user/org delete if a packages exist. * Use package unlink in repository service. * Added support for composer packages. * Restructured package docs. * Added missing tests. * Fixed generic content page. * Fixed docs. * Fixed swagger. * Added missing type. * Fixed ambiguous column. * Organize content store by sha256 hash. * Added admin package management. * Added support for sorting. * Add support for multiple identical versions/files. * Added missing repository unlink. * Added file properties. * make fmt * lint * Added Conan package registry. * Updated docs. * Unify package names. * Added swagger enum. * Use longer TEXT column type. * Removed version composite key. * Merged package and container registry. * Removed index. * Use dedicated package router. * Moved files to new location. * Updated docs. * Fixed JOIN order. * Fixed GROUP BY statement. * Fixed GROUP BY #2. * Added symbol server support. * Added more tests. * Set NOT NULL. * Added setting to disable package registries. * Moved auth into service. * refactor * Use ctx everywhere. * Added package cleanup task. * Changed packages path. * Added container registry. * Refactoring * Updated comparison. * Fix swagger. * Fixed table order. * Use token auth for npm routes. * Enabled ReverseProxy auth. * Added packages link for orgs. * Fixed anonymous org access. * Enable copy button for setup instructions. * Merge error * Added suggestions. * Fixed merge. * Handle "generic". * Added link for TODO. * Added suggestions. * Changed temporary buffer filename. * Added suggestions. * Apply suggestions from code review Co-authored-by: Thomas Boerger <thomas@webhippie.de> * Update docs/content/doc/packages/nuget.en-us.md Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: Thomas Boerger <thomas@webhippie.de>
2 years ago
Add API endpoint for accessing repo topics (#7963) * Create API endpoints for repo topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Generate swagger Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add documentation to functions Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Grammar fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix function comment Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Can't use FindTopics when looking for a single repo topic, as it doesnt use exact match Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add PUT ​/repos​/{owner}​/{repo}​/topics and remove GET ​/repos​/{owner}​/{repo}​/topics * Ignore if topic is sent twice in same request, refactoring. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix topic dropdown with api changes. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Style fix Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update API documentation Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Better way to handle duplicate topics in slice Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Make response element TopicName an array of strings, instead of using an array of TopicName Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add test cases for API Repo Topics. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix format of tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix comments Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix unit tests after adding some more topics to the test fixture. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Update models/topic.go Limit multiple if else if ... Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Engine as first parameter in function Co-Authored-By: Antoine GIRARD <sapk@users.noreply.github.com> * Replace magic numbers with http status code constants. Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix variable scope Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Test one read with login and one with token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Add some more tests Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Apply suggestions from code review Use empty struct for efficiency Co-Authored-By: Lauris BH <lauris@nix.lv> * Add test case to check access for user with write access Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Fix access, repo admin required to change topics Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Correct first test to be without token Signed-off-by: David Svantesson <davidsvantesson@gmail.com> * Any repo reader should be able to access topics. * No need for string pointer Signed-off-by: David Svantesson <davidsvantesson@gmail.com>
4 years ago
Add API to get/edit wiki (#17278) * Add API to get/edit wiki * Add swagger docs, various improvements * fmt * Fix lint and rm comment * Add page parameter * Add pagination to pages * Add tests * fmt * Update func names * Update error handling * Update type name * Fix lint * Don't delete Home * Update func name * Update routers/api/v1/repo/wiki.go Co-authored-by: delvh <dev.lh@web.de> * Remove unnecessary check * Fix lint * Use English strings * Update integrations/api_wiki_test.go Co-authored-by: delvh <dev.lh@web.de> * Update func and test names * Remove unsed check and avoid duplicated error reports * Improve error handling * Return after error * Document 404 error * Update swagger * Fix lint * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Document file encoding * fmt * Apply suggestions * Use convert * Fix integration test * simplify permissions * unify duplicate key Title/Name * improve types & return UTC timestamps * improve types pt.2 - add WikiPageMetaData.LastCommit - add WikiPageMetaData.HTMLURL - replace WikiPageMetaData.Updated with .LastCommit.Committer.Created also delete convert.ToWikiPage(), as it received too many arguments and only had one callsite anyway. sorry for bad advice earlier 🙃 * WikiPage.Content is base64 encoded * simplify error handling in wikiContentsByName() * update swagger * fix & DRY findWikiRepoCommit() error handling ListWikiPages() previously wrote error twice when repo wiki didn't exist * rename Content -> ContentBase64 * Fix test * Fix tests * Update var name * suburl -> sub_url Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
Add API to get/edit wiki (#17278) * Add API to get/edit wiki * Add swagger docs, various improvements * fmt * Fix lint and rm comment * Add page parameter * Add pagination to pages * Add tests * fmt * Update func names * Update error handling * Update type name * Fix lint * Don't delete Home * Update func name * Update routers/api/v1/repo/wiki.go Co-authored-by: delvh <dev.lh@web.de> * Remove unnecessary check * Fix lint * Use English strings * Update integrations/api_wiki_test.go Co-authored-by: delvh <dev.lh@web.de> * Update func and test names * Remove unsed check and avoid duplicated error reports * Improve error handling * Return after error * Document 404 error * Update swagger * Fix lint * Apply suggestions from code review Co-authored-by: delvh <dev.lh@web.de> * Document file encoding * fmt * Apply suggestions * Use convert * Fix integration test * simplify permissions * unify duplicate key Title/Name * improve types & return UTC timestamps * improve types pt.2 - add WikiPageMetaData.LastCommit - add WikiPageMetaData.HTMLURL - replace WikiPageMetaData.Updated with .LastCommit.Committer.Created also delete convert.ToWikiPage(), as it received too many arguments and only had one callsite anyway. sorry for bad advice earlier 🙃 * WikiPage.Content is base64 encoded * simplify error handling in wikiContentsByName() * update swagger * fix & DRY findWikiRepoCommit() error handling ListWikiPages() previously wrote error twice when repo wiki didn't exist * rename Content -> ContentBase64 * Fix test * Fix tests * Update var name * suburl -> sub_url Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639
  1. {
  2. "consumes": [
  3. "application/json",
  4. "text/plain"
  5. ],
  6. "produces": [
  7. "application/json",
  8. "text/html"
  9. ],
  10. "schemes": [
  11. "http",
  12. "https"
  13. ],
  14. "swagger": "2.0",
  15. "info": {
  16. "description": "This documentation describes the Gitea API.",
  17. "title": "Gitea API.",
  18. "license": {
  19. "name": "MIT",
  20. "url": "http://opensource.org/licenses/MIT"
  21. },
  22. "version": "{{AppVer | JSEscape | Safe}}"
  23. },
  24. "basePath": "{{AppSubUrl | JSEscape | Safe}}/api/v1",
  25. "paths": {
  26. "/activitypub/user/{username}": {
  27. "get": {
  28. "produces": [
  29. "application/json"
  30. ],
  31. "tags": [
  32. "activitypub"
  33. ],
  34. "summary": "Returns the Person actor for a user",
  35. "operationId": "activitypubPerson",
  36. "parameters": [
  37. {
  38. "type": "string",
  39. "description": "username of the user",
  40. "name": "username",
  41. "in": "path",
  42. "required": true
  43. }
  44. ],
  45. "responses": {
  46. "200": {
  47. "$ref": "#/responses/ActivityPub"
  48. }
  49. }
  50. }
  51. },
  52. "/activitypub/user/{username}/inbox": {
  53. "post": {
  54. "produces": [
  55. "application/json"
  56. ],
  57. "tags": [
  58. "activitypub"
  59. ],
  60. "summary": "Send to the inbox",
  61. "operationId": "activitypubPersonInbox",
  62. "parameters": [
  63. {
  64. "type": "string",
  65. "description": "username of the user",
  66. "name": "username",
  67. "in": "path",
  68. "required": true
  69. }
  70. ],
  71. "responses": {
  72. "204": {
  73. "$ref": "#/responses/empty"
  74. }
  75. }
  76. }
  77. },
  78. "/admin/cron": {
  79. "get": {
  80. "produces": [
  81. "application/json"
  82. ],
  83. "tags": [
  84. "admin"
  85. ],
  86. "summary": "List cron tasks",
  87. "operationId": "adminCronList",
  88. "parameters": [
  89. {
  90. "type": "integer",
  91. "description": "page number of results to return (1-based)",
  92. "name": "page",
  93. "in": "query"
  94. },
  95. {
  96. "type": "integer",
  97. "description": "page size of results",
  98. "name": "limit",
  99. "in": "query"
  100. }
  101. ],
  102. "responses": {
  103. "200": {
  104. "$ref": "#/responses/CronList"
  105. },
  106. "403": {
  107. "$ref": "#/responses/forbidden"
  108. }
  109. }
  110. }
  111. },
  112. "/admin/cron/{task}": {
  113. "post": {
  114. "produces": [
  115. "application/json"
  116. ],
  117. "tags": [
  118. "admin"
  119. ],
  120. "summary": "Run cron task",
  121. "operationId": "adminCronRun",
  122. "parameters": [
  123. {
  124. "type": "string",
  125. "description": "task to run",
  126. "name": "task",
  127. "in": "path",
  128. "required": true
  129. }
  130. ],
  131. "responses": {
  132. "204": {
  133. "$ref": "#/responses/empty"
  134. },
  135. "404": {
  136. "$ref": "#/responses/notFound"
  137. }
  138. }
  139. }
  140. },
  141. "/admin/orgs": {
  142. "get": {
  143. "produces": [
  144. "application/json"
  145. ],
  146. "tags": [
  147. "admin"
  148. ],
  149. "summary": "List all organizations",
  150. "operationId": "adminGetAllOrgs",
  151. "parameters": [
  152. {
  153. "type": "integer",
  154. "description": "page number of results to return (1-based)",
  155. "name": "page",
  156. "in": "query"
  157. },
  158. {
  159. "type": "integer",
  160. "description": "page size of results",
  161. "name": "limit",
  162. "in": "query"
  163. }
  164. ],
  165. "responses": {
  166. "200": {
  167. "$ref": "#/responses/OrganizationList"
  168. },
  169. "403": {
  170. "$ref": "#/responses/forbidden"
  171. }
  172. }
  173. }
  174. },
  175. "/admin/unadopted": {
  176. "get": {
  177. "produces": [
  178. "application/json"
  179. ],
  180. "tags": [
  181. "admin"
  182. ],
  183. "summary": "List unadopted repositories",
  184. "operationId": "adminUnadoptedList",
  185. "parameters": [
  186. {
  187. "type": "integer",
  188. "description": "page number of results to return (1-based)",
  189. "name": "page",
  190. "in": "query"
  191. },
  192. {
  193. "type": "integer",
  194. "description": "page size of results",
  195. "name": "limit",
  196. "in": "query"
  197. },
  198. {
  199. "type": "string",
  200. "description": "pattern of repositories to search for",
  201. "name": "pattern",
  202. "in": "query"
  203. }
  204. ],
  205. "responses": {
  206. "200": {
  207. "$ref": "#/responses/StringSlice"
  208. },
  209. "403": {
  210. "$ref": "#/responses/forbidden"
  211. }
  212. }
  213. }
  214. },
  215. "/admin/unadopted/{owner}/{repo}": {
  216. "post": {
  217. "produces": [
  218. "application/json"
  219. ],
  220. "tags": [
  221. "admin"
  222. ],
  223. "summary": "Adopt unadopted files as a repository",
  224. "operationId": "adminAdoptRepository",
  225. "parameters": [
  226. {
  227. "type": "string",
  228. "description": "owner of the repo",
  229. "name": "owner",
  230. "in": "path",
  231. "required": true
  232. },
  233. {
  234. "type": "string",
  235. "description": "name of the repo",
  236. "name": "repo",
  237. "in": "path",
  238. "required": true
  239. }
  240. ],
  241. "responses": {
  242. "204": {
  243. "$ref": "#/responses/empty"
  244. },
  245. "403": {
  246. "$ref": "#/responses/forbidden"
  247. },
  248. "404": {
  249. "$ref": "#/responses/notFound"
  250. }
  251. }
  252. },
  253. "delete": {
  254. "produces": [
  255. "application/json"
  256. ],
  257. "tags": [
  258. "admin"
  259. ],
  260. "summary": "Delete unadopted files",
  261. "operationId": "adminDeleteUnadoptedRepository",
  262. "parameters": [
  263. {
  264. "type": "string",
  265. "description": "owner of the repo",
  266. "name": "owner",
  267. "in": "path",
  268. "required": true
  269. },
  270. {
  271. "type": "string",
  272. "description": "name of the repo",
  273. "name": "repo",
  274. "in": "path",
  275. "required": true
  276. }
  277. ],
  278. "responses": {
  279. "204": {
  280. "$ref": "#/responses/empty"
  281. },
  282. "403": {
  283. "$ref": "#/responses/forbidden"
  284. }
  285. }
  286. }
  287. },
  288. "/admin/users": {
  289. "get": {
  290. "produces": [
  291. "application/json"
  292. ],
  293. "tags": [
  294. "admin"
  295. ],
  296. "summary": "List all users",
  297. "operationId": "adminGetAllUsers",
  298. "parameters": [
  299. {
  300. "type": "integer",
  301. "description": "page number of results to return (1-based)",
  302. "name": "page",
  303. "in": "query"
  304. },
  305. {
  306. "type": "integer",
  307. "description": "page size of results",
  308. "name": "limit",
  309. "in": "query"
  310. }
  311. ],
  312. "responses": {
  313. "200": {
  314. "$ref": "#/responses/UserList"
  315. },
  316. "403": {
  317. "$ref": "#/responses/forbidden"
  318. }
  319. }
  320. },
  321. "post": {
  322. "consumes": [
  323. "application/json"
  324. ],
  325. "produces": [
  326. "application/json"
  327. ],
  328. "tags": [
  329. "admin"
  330. ],
  331. "summary": "Create a user",
  332. "operationId": "adminCreateUser",
  333. "parameters": [
  334. {
  335. "name": "body",
  336. "in": "body",
  337. "schema": {
  338. "$ref": "#/definitions/CreateUserOption"
  339. }
  340. }
  341. ],
  342. "responses": {
  343. "201": {
  344. "$ref": "#/responses/User"
  345. },
  346. "400": {
  347. "$ref": "#/responses/error"
  348. },
  349. "403": {
  350. "$ref": "#/responses/forbidden"
  351. },
  352. "422": {
  353. "$ref": "#/responses/validationError"
  354. }
  355. }
  356. }
  357. },
  358. "/admin/users/{username}": {
  359. "delete": {
  360. "produces": [
  361. "application/json"
  362. ],
  363. "tags": [
  364. "admin"
  365. ],
  366. "summary": "Delete a user",
  367. "operationId": "adminDeleteUser",
  368. "parameters": [
  369. {
  370. "type": "string",
  371. "description": "username of user to delete",
  372. "name": "username",
  373. "in": "path",
  374. "required": true
  375. }
  376. ],
  377. "responses": {
  378. "204": {
  379. "$ref": "#/responses/empty"
  380. },
  381. "403": {
  382. "$ref": "#/responses/forbidden"
  383. },
  384. "422": {
  385. "$ref": "#/responses/validationError"
  386. }
  387. }
  388. },
  389. "patch": {
  390. "consumes": [
  391. "application/json"
  392. ],
  393. "produces": [
  394. "application/json"
  395. ],
  396. "tags": [
  397. "admin"
  398. ],
  399. "summary": "Edit an existing user",
  400. "operationId": "adminEditUser",
  401. "parameters": [
  402. {
  403. "type": "string",
  404. "description": "username of user to edit",
  405. "name": "username",
  406. "in": "path",
  407. "required": true
  408. },
  409. {
  410. "name": "body",
  411. "in": "body",
  412. "schema": {
  413. "$ref": "#/definitions/EditUserOption"
  414. }
  415. }
  416. ],
  417. "responses": {
  418. "200": {
  419. "$ref": "#/responses/User"
  420. },
  421. "403": {
  422. "$ref": "#/responses/forbidden"
  423. },
  424. "422": {
  425. "$ref": "#/responses/validationError"
  426. }
  427. }
  428. }
  429. },
  430. "/admin/users/{username}/keys": {
  431. "post": {
  432. "consumes": [
  433. "application/json"
  434. ],
  435. "produces": [
  436. "application/json"
  437. ],
  438. "tags": [
  439. "admin"
  440. ],
  441. "summary": "Add a public key on behalf of a user",
  442. "operationId": "adminCreatePublicKey",
  443. "parameters": [
  444. {
  445. "type": "string",
  446. "description": "username of the user",
  447. "name": "username",
  448. "in": "path",
  449. "required": true
  450. },
  451. {
  452. "name": "key",
  453. "in": "body",
  454. "schema": {
  455. "$ref": "#/definitions/CreateKeyOption"
  456. }
  457. }
  458. ],
  459. "responses": {
  460. "201": {
  461. "$ref": "#/responses/PublicKey"
  462. },
  463. "403": {
  464. "$ref": "#/responses/forbidden"
  465. },
  466. "422": {
  467. "$ref": "#/responses/validationError"
  468. }
  469. }
  470. }
  471. },
  472. "/admin/users/{username}/keys/{id}": {
  473. "delete": {
  474. "produces": [
  475. "application/json"
  476. ],
  477. "tags": [
  478. "admin"
  479. ],
  480. "summary": "Delete a user's public key",
  481. "operationId": "adminDeleteUserPublicKey",
  482. "parameters": [
  483. {
  484. "type": "string",
  485. "description": "username of user",
  486. "name": "username",
  487. "in": "path",
  488. "required": true
  489. },
  490. {
  491. "type": "integer",
  492. "format": "int64",
  493. "description": "id of the key to delete",
  494. "name": "id",
  495. "in": "path",
  496. "required": true
  497. }
  498. ],
  499. "responses": {
  500. "204": {
  501. "$ref": "#/responses/empty"
  502. },
  503. "403": {
  504. "$ref": "#/responses/forbidden"
  505. },
  506. "404": {
  507. "$ref": "#/responses/notFound"
  508. }
  509. }
  510. }
  511. },
  512. "/admin/users/{username}/orgs": {
  513. "post": {
  514. "consumes": [
  515. "application/json"
  516. ],
  517. "produces": [
  518. "application/json"
  519. ],
  520. "tags": [
  521. "admin"
  522. ],
  523. "summary": "Create an organization",
  524. "operationId": "adminCreateOrg",
  525. "parameters": [
  526. {
  527. "type": "string",
  528. "description": "username of the user that will own the created organization",
  529. "name": "username",
  530. "in": "path",
  531. "required": true
  532. },
  533. {
  534. "name": "organization",
  535. "in": "body",
  536. "required": true,
  537. "schema": {
  538. "$ref": "#/definitions/CreateOrgOption"
  539. }
  540. }
  541. ],
  542. "responses": {
  543. "201": {
  544. "$ref": "#/responses/Organization"
  545. },
  546. "403": {
  547. "$ref": "#/responses/forbidden"
  548. },
  549. "422": {
  550. "$ref": "#/responses/validationError"
  551. }
  552. }
  553. }
  554. },
  555. "/admin/users/{username}/repos": {
  556. "post": {
  557. "consumes": [
  558. "application/json"
  559. ],
  560. "produces": [
  561. "application/json"
  562. ],
  563. "tags": [
  564. "admin"
  565. ],
  566. "summary": "Create a repository on behalf of a user",
  567. "operationId": "adminCreateRepo",
  568. "parameters": [
  569. {
  570. "type": "string",
  571. "description": "username of the user. This user will own the created repository",
  572. "name": "username",
  573. "in": "path",
  574. "required": true
  575. },
  576. {
  577. "name": "repository",
  578. "in": "body",
  579. "required": true,
  580. "schema": {
  581. "$ref": "#/definitions/CreateRepoOption"
  582. }
  583. }
  584. ],
  585. "responses": {
  586. "201": {
  587. "$ref": "#/responses/Repository"
  588. },
  589. "403": {
  590. "$ref": "#/responses/forbidden"
  591. },
  592. "404": {
  593. "$ref": "#/responses/notFound"
  594. },
  595. "409": {
  596. "$ref": "#/responses/error"
  597. },
  598. "422": {
  599. "$ref": "#/responses/validationError"
  600. }
  601. }
  602. }
  603. },
  604. "/markdown": {
  605. "post": {
  606. "consumes": [
  607. "application/json"
  608. ],
  609. "produces": [
  610. "text/html"
  611. ],
  612. "tags": [
  613. "miscellaneous"
  614. ],
  615. "summary": "Render a markdown document as HTML",
  616. "operationId": "renderMarkdown",
  617. "parameters": [
  618. {
  619. "name": "body",
  620. "in": "body",
  621. "schema": {
  622. "$ref": "#/definitions/MarkdownOption"
  623. }
  624. }
  625. ],
  626. "responses": {
  627. "200": {
  628. "$ref": "#/responses/MarkdownRender"
  629. },
  630. "422": {
  631. "$ref": "#/responses/validationError"
  632. }
  633. }
  634. }
  635. },
  636. "/markdown/raw": {
  637. "post": {
  638. "consumes": [
  639. "text/plain"
  640. ],
  641. "produces": [
  642. "text/html"
  643. ],
  644. "tags": [
  645. "miscellaneous"
  646. ],
  647. "summary": "Render raw markdown as HTML",
  648. "operationId": "renderMarkdownRaw",
  649. "parameters": [
  650. {
  651. "description": "Request body to render",
  652. "name": "body",
  653. "in": "body",
  654. "required": true,
  655. "schema": {
  656. "type": "string"
  657. }
  658. }
  659. ],
  660. "responses": {
  661. "200": {
  662. "$ref": "#/responses/MarkdownRender"
  663. },
  664. "422": {
  665. "$ref": "#/responses/validationError"
  666. }
  667. }
  668. }
  669. },
  670. "/nodeinfo": {
  671. "get": {
  672. "produces": [
  673. "application/json"
  674. ],
  675. "tags": [
  676. "miscellaneous"
  677. ],
  678. "summary": "Returns the nodeinfo of the Gitea application",
  679. "operationId": "getNodeInfo",
  680. "responses": {
  681. "200": {
  682. "$ref": "#/responses/NodeInfo"
  683. }
  684. }
  685. }
  686. },
  687. "/notifications": {
  688. "get": {
  689. "consumes": [
  690. "application/json"
  691. ],
  692. "produces": [
  693. "application/json"
  694. ],
  695. "tags": [
  696. "notification"
  697. ],
  698. "summary": "List users's notification threads",
  699. "operationId": "notifyGetList",
  700. "parameters": [
  701. {
  702. "type": "boolean",
  703. "description": "If true, show notifications marked as read. Default value is false",
  704. "name": "all",
  705. "in": "query"
  706. },
  707. {
  708. "type": "array",
  709. "items": {
  710. "type": "string"
  711. },
  712. "collectionFormat": "multi",
  713. "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned.",
  714. "name": "status-types",
  715. "in": "query"
  716. },
  717. {
  718. "type": "array",
  719. "items": {
  720. "enum": [
  721. "issue",
  722. "pull",
  723. "commit",
  724. "repository"
  725. ],
  726. "type": "string"
  727. },
  728. "collectionFormat": "multi",
  729. "description": "filter notifications by subject type",
  730. "name": "subject-type",
  731. "in": "query"
  732. },
  733. {
  734. "type": "string",
  735. "format": "date-time",
  736. "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format",
  737. "name": "since",
  738. "in": "query"
  739. },
  740. {
  741. "type": "string",
  742. "format": "date-time",
  743. "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format",
  744. "name": "before",
  745. "in": "query"
  746. },
  747. {
  748. "type": "integer",
  749. "description": "page number of results to return (1-based)",
  750. "name": "page",
  751. "in": "query"
  752. },
  753. {
  754. "type": "integer",
  755. "description": "page size of results",
  756. "name": "limit",
  757. "in": "query"
  758. }
  759. ],
  760. "responses": {
  761. "200": {
  762. "$ref": "#/responses/NotificationThreadList"
  763. }
  764. }
  765. },
  766. "put": {
  767. "consumes": [
  768. "application/json"
  769. ],
  770. "produces": [
  771. "application/json"
  772. ],
  773. "tags": [
  774. "notification"
  775. ],
  776. "summary": "Mark notification threads as read, pinned or unread",
  777. "operationId": "notifyReadList",
  778. "parameters": [
  779. {
  780. "type": "string",
  781. "format": "date-time",
  782. "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated.",
  783. "name": "last_read_at",
  784. "in": "query"
  785. },
  786. {
  787. "type": "string",
  788. "description": "If true, mark all notifications on this repo. Default value is false",
  789. "name": "all",
  790. "in": "query"
  791. },
  792. {
  793. "type": "array",
  794. "items": {
  795. "type": "string"
  796. },
  797. "collectionFormat": "multi",
  798. "description": "Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.",
  799. "name": "status-types",
  800. "in": "query"
  801. },
  802. {
  803. "type": "string",
  804. "description": "Status to mark notifications as, Defaults to read.",
  805. "name": "to-status",
  806. "in": "query"
  807. }
  808. ],
  809. "responses": {
  810. "205": {
  811. "$ref": "#/responses/NotificationThreadList"
  812. }
  813. }
  814. }
  815. },
  816. "/notifications/new": {
  817. "get": {
  818. "tags": [
  819. "notification"
  820. ],
  821. "summary": "Check if unread notifications exist",
  822. "operationId": "notifyNewAvailable",
  823. "responses": {
  824. "200": {
  825. "$ref": "#/responses/NotificationCount"
  826. }
  827. }
  828. }
  829. },
  830. "/notifications/threads/{id}": {
  831. "get": {
  832. "consumes": [
  833. "application/json"
  834. ],
  835. "produces": [
  836. "application/json"
  837. ],
  838. "tags": [
  839. "notification"
  840. ],
  841. "summary": "Get notification thread by ID",
  842. "operationId": "notifyGetThread",
  843. "parameters": [
  844. {
  845. "type": "string",
  846. "description": "id of notification thread",
  847. "name": "id",
  848. "in": "path",
  849. "required": true
  850. }
  851. ],
  852. "responses": {
  853. "200": {
  854. "$ref": "#/responses/NotificationThread"
  855. },
  856. "403": {
  857. "$ref": "#/responses/forbidden"
  858. },
  859. "404": {
  860. "$ref": "#/responses/notFound"
  861. }
  862. }
  863. },
  864. "patch": {
  865. "consumes": [
  866. "application/json"
  867. ],
  868. "produces": [
  869. "application/json"
  870. ],
  871. "tags": [
  872. "notification"
  873. ],
  874. "summary": "Mark notification thread as read by ID",
  875. "operationId": "notifyReadThread",
  876. "parameters": [
  877. {
  878. "type": "string",
  879. "description": "id of notification thread",
  880. "name": "id",
  881. "in": "path",
  882. "required": true
  883. },
  884. {
  885. "type": "string",
  886. "default": "read",
  887. "description": "Status to mark notifications as",
  888. "name": "to-status",
  889. "in": "query"
  890. }
  891. ],
  892. "responses": {
  893. "205": {
  894. "$ref": "#/responses/NotificationThread"
  895. },
  896. "403": {
  897. "$ref": "#/responses/forbidden"
  898. },
  899. "404": {
  900. "$ref": "#/responses/notFound"
  901. }
  902. }
  903. }
  904. },
  905. "/org/{org}/repos": {
  906. "post": {
  907. "consumes": [
  908. "application/json"
  909. ],
  910. "produces": [
  911. "application/json"
  912. ],
  913. "tags": [
  914. "organization"
  915. ],
  916. "summary": "Create a repository in an organization",
  917. "operationId": "createOrgRepoDeprecated",
  918. "deprecated": true,
  919. "parameters": [
  920. {
  921. "type": "string",
  922. "description": "name of organization",
  923. "name": "org",
  924. "in": "path",
  925. "required": true
  926. },
  927. {
  928. "name": "body",
  929. "in": "body",
  930. "schema": {
  931. "$ref": "#/definitions/CreateRepoOption"
  932. }
  933. }
  934. ],
  935. "responses": {
  936. "201": {
  937. "$ref": "#/responses/Repository"
  938. },
  939. "403": {
  940. "$ref": "#/responses/forbidden"
  941. },
  942. "422": {
  943. "$ref": "#/responses/validationError"
  944. }
  945. }
  946. }
  947. },
  948. "/orgs": {
  949. "get": {
  950. "produces": [
  951. "application/json"
  952. ],
  953. "tags": [
  954. "organization"
  955. ],
  956. "summary": "Get list of organizations",
  957. "operationId": "orgGetAll",
  958. "parameters": [
  959. {
  960. "type": "integer",
  961. "description": "page number of results to return (1-based)",
  962. "name": "page",
  963. "in": "query"
  964. },
  965. {
  966. "type": "integer",
  967. "description": "page size of results",
  968. "name": "limit",
  969. "in": "query"
  970. }
  971. ],
  972. "responses": {
  973. "200": {
  974. "$ref": "#/responses/OrganizationList"
  975. }
  976. }
  977. },
  978. "post": {
  979. "consumes": [
  980. "application/json"
  981. ],
  982. "produces": [
  983. "application/json"
  984. ],
  985. "tags": [
  986. "organization"
  987. ],
  988. "summary": "Create an organization",
  989. "operationId": "orgCreate",
  990. "parameters": [
  991. {
  992. "name": "organization",
  993. "in": "body",
  994. "required": true,
  995. "schema": {
  996. "$ref": "#/definitions/CreateOrgOption"
  997. }
  998. }
  999. ],
  1000. "responses": {
  1001. "201": {
  1002. "$ref": "#/responses/Organization"
  1003. },
  1004. "403": {
  1005. "$ref": "#/responses/forbidden"
  1006. },
  1007. "422": {
  1008. "$ref": "#/responses/validationError"
  1009. }
  1010. }
  1011. }
  1012. },
  1013. "/orgs/{org}": {
  1014. "get": {
  1015. "produces": [
  1016. "application/json"
  1017. ],
  1018. "tags": [
  1019. "organization"
  1020. ],
  1021. "summary": "Get an organization",
  1022. "operationId": "orgGet",
  1023. "parameters": [
  1024. {
  1025. "type": "string",
  1026. "description": "name of the organization to get",
  1027. "name": "org",
  1028. "in": "path",
  1029. "required": true
  1030. }
  1031. ],
  1032. "responses": {
  1033. "200": {
  1034. "$ref": "#/responses/Organization"
  1035. }
  1036. }
  1037. },
  1038. "delete": {
  1039. "produces": [
  1040. "application/json"
  1041. ],
  1042. "tags": [
  1043. "organization"
  1044. ],
  1045. "summary": "Delete an organization",
  1046. "operationId": "orgDelete",
  1047. "parameters": [
  1048. {
  1049. "type": "string",
  1050. "description": "organization that is to be deleted",
  1051. "name": "org",
  1052. "in": "path",
  1053. "required": true
  1054. }
  1055. ],
  1056. "responses": {
  1057. "204": {
  1058. "$ref": "#/responses/empty"
  1059. }
  1060. }
  1061. },
  1062. "patch": {
  1063. "consumes": [
  1064. "application/json"
  1065. ],
  1066. "produces": [
  1067. "application/json"
  1068. ],
  1069. "tags": [
  1070. "organization"
  1071. ],
  1072. "summary": "Edit an organization",
  1073. "operationId": "orgEdit",
  1074. "parameters": [
  1075. {
  1076. "type": "string",
  1077. "description": "name of the organization to edit",
  1078. "name": "org",
  1079. "in": "path",
  1080. "required": true
  1081. },
  1082. {
  1083. "name": "body",
  1084. "in": "body",
  1085. "required": true,
  1086. "schema": {
  1087. "$ref": "#/definitions/EditOrgOption"
  1088. }
  1089. }
  1090. ],
  1091. "responses": {
  1092. "200": {
  1093. "$ref": "#/responses/Organization"
  1094. }
  1095. }
  1096. }
  1097. },
  1098. "/orgs/{org}/hooks": {
  1099. "get": {
  1100. "produces": [
  1101. "application/json"
  1102. ],
  1103. "tags": [
  1104. "organization"
  1105. ],
  1106. "summary": "List an organization's webhooks",
  1107. "operationId": "orgListHooks",
  1108. "parameters": [
  1109. {
  1110. "type": "string",
  1111. "description": "name of the organization",
  1112. "name": "org",
  1113. "in": "path",
  1114. "required": true
  1115. },
  1116. {
  1117. "type": "integer",
  1118. "description": "page number of results to return (1-based)",
  1119. "name": "page",
  1120. "in": "query"
  1121. },
  1122. {
  1123. "type": "integer",
  1124. "description": "page size of results",
  1125. "name": "limit",
  1126. "in": "query"
  1127. }
  1128. ],
  1129. "responses": {
  1130. "200": {
  1131. "$ref": "#/responses/HookList"
  1132. }
  1133. }
  1134. },
  1135. "post": {
  1136. "consumes": [
  1137. "application/json"
  1138. ],
  1139. "produces": [
  1140. "application/json"
  1141. ],
  1142. "tags": [
  1143. "organization"
  1144. ],
  1145. "summary": "Create a hook",
  1146. "operationId": "orgCreateHook",
  1147. "parameters": [
  1148. {
  1149. "type": "string",
  1150. "description": "name of the organization",
  1151. "name": "org",
  1152. "in": "path",
  1153. "required": true
  1154. },
  1155. {
  1156. "name": "body",
  1157. "in": "body",
  1158. "required": true,
  1159. "schema": {
  1160. "$ref": "#/definitions/CreateHookOption"
  1161. }
  1162. }
  1163. ],
  1164. "responses": {
  1165. "201": {
  1166. "$ref": "#/responses/Hook"
  1167. }
  1168. }
  1169. }
  1170. },
  1171. "/orgs/{org}/hooks/{id}": {
  1172. "get": {
  1173. "produces": [
  1174. "application/json"
  1175. ],
  1176. "tags": [
  1177. "organization"
  1178. ],
  1179. "summary": "Get a hook",
  1180. "operationId": "orgGetHook",
  1181. "parameters": [
  1182. {
  1183. "type": "string",
  1184. "description": "name of the organization",
  1185. "name": "org",
  1186. "in": "path",
  1187. "required": true
  1188. },
  1189. {
  1190. "type": "integer",
  1191. "format": "int64",
  1192. "description": "id of the hook to get",
  1193. "name": "id",
  1194. "in": "path",
  1195. "required": true
  1196. }
  1197. ],
  1198. "responses": {
  1199. "200": {
  1200. "$ref": "#/responses/Hook"
  1201. }
  1202. }
  1203. },
  1204. "delete": {
  1205. "produces": [
  1206. "application/json"
  1207. ],
  1208. "tags": [
  1209. "organization"
  1210. ],
  1211. "summary": "Delete a hook",
  1212. "operationId": "orgDeleteHook",
  1213. "parameters": [
  1214. {
  1215. "type": "string",
  1216. "description": "name of the organization",
  1217. "name": "org",
  1218. "in": "path",
  1219. "required": true
  1220. },
  1221. {
  1222. "type": "integer",
  1223. "format": "int64",
  1224. "description": "id of the hook to delete",
  1225. "name": "id",
  1226. "in": "path",
  1227. "required": true
  1228. }
  1229. ],
  1230. "responses": {
  1231. "204": {
  1232. "$ref": "#/responses/empty"
  1233. }
  1234. }
  1235. },
  1236. "patch": {
  1237. "consumes": [
  1238. "application/json"
  1239. ],
  1240. "produces": [
  1241. "application/json"
  1242. ],
  1243. "tags": [
  1244. "organization"
  1245. ],
  1246. "summary": "Update a hook",
  1247. "operationId": "orgEditHook",
  1248. "parameters": [
  1249. {
  1250. "type": "string",
  1251. "description": "name of the organization",
  1252. "name": "org",
  1253. "in": "path",
  1254. "required": true
  1255. },
  1256. {
  1257. "type": "integer",
  1258. "format": "int64",
  1259. "description": "id of the hook to update",
  1260. "name": "id",
  1261. "in": "path",
  1262. "required": true
  1263. },
  1264. {
  1265. "name": "body",
  1266. "in": "body",
  1267. "schema": {
  1268. "$ref": "#/definitions/EditHookOption"
  1269. }
  1270. }
  1271. ],
  1272. "responses": {
  1273. "200": {
  1274. "$ref": "#/responses/Hook"
  1275. }
  1276. }
  1277. }
  1278. },
  1279. "/orgs/{org}/labels": {
  1280. "get": {
  1281. "produces": [
  1282. "application/json"
  1283. ],
  1284. "tags": [
  1285. "organization"
  1286. ],
  1287. "summary": "List an organization's labels",
  1288. "operationId": "orgListLabels",
  1289. "parameters": [
  1290. {
  1291. "type": "string",
  1292. "description": "name of the organization",
  1293. "name": "org",
  1294. "in": "path",
  1295. "required": true
  1296. },
  1297. {
  1298. "type": "integer",
  1299. "description": "page number of results to return (1-based)",
  1300. "name": "page",
  1301. "in": "query"
  1302. },
  1303. {
  1304. "type": "integer",
  1305. "description": "page size of results",
  1306. "name": "limit",
  1307. "in": "query"
  1308. }
  1309. ],
  1310. "responses": {
  1311. "200": {
  1312. "$ref": "#/responses/LabelList"
  1313. }
  1314. }
  1315. },
  1316. "post": {
  1317. "consumes": [
  1318. "application/json"
  1319. ],
  1320. "produces": [
  1321. "application/json"
  1322. ],
  1323. "tags": [
  1324. "organization"
  1325. ],
  1326. "summary": "Create a label for an organization",
  1327. "operationId": "orgCreateLabel",
  1328. "parameters": [
  1329. {
  1330. "type": "string",
  1331. "description": "name of the organization",
  1332. "name": "org",
  1333. "in": "path",
  1334. "required": true
  1335. },
  1336. {
  1337. "name": "body",
  1338. "in": "body",
  1339. "schema": {
  1340. "$ref": "#/definitions/CreateLabelOption"
  1341. }
  1342. }
  1343. ],
  1344. "responses": {
  1345. "201": {
  1346. "$ref": "#/responses/Label"
  1347. },
  1348. "422": {
  1349. "$ref": "#/responses/validationError"
  1350. }
  1351. }
  1352. }
  1353. },
  1354. "/orgs/{org}/labels/{id}": {
  1355. "get": {
  1356. "produces": [
  1357. "application/json"
  1358. ],
  1359. "tags": [
  1360. "organization"
  1361. ],
  1362. "summary": "Get a single label",
  1363. "operationId": "orgGetLabel",
  1364. "parameters": [
  1365. {
  1366. "type": "string",
  1367. "description": "name of the organization",
  1368. "name": "org",
  1369. "in": "path",
  1370. "required": true
  1371. },
  1372. {
  1373. "type": "integer",
  1374. "format": "int64",
  1375. "description": "id of the label to get",
  1376. "name": "id",
  1377. "in": "path",
  1378. "required": true
  1379. }
  1380. ],
  1381. "responses": {
  1382. "200": {
  1383. "$ref": "#/responses/Label"
  1384. }
  1385. }
  1386. },
  1387. "delete": {
  1388. "tags": [
  1389. "organization"
  1390. ],
  1391. "summary": "Delete a label",
  1392. "operationId": "orgDeleteLabel",
  1393. "parameters": [
  1394. {
  1395. "type": "string",
  1396. "description": "name of the organization",
  1397. "name": "org",
  1398. "in": "path",
  1399. "required": true
  1400. },
  1401. {
  1402. "type": "integer",
  1403. "format": "int64",
  1404. "description": "id of the label to delete",
  1405. "name": "id",
  1406. "in": "path",
  1407. "required": true
  1408. }
  1409. ],
  1410. "responses": {
  1411. "204": {
  1412. "$ref": "#/responses/empty"
  1413. }
  1414. }
  1415. },
  1416. "patch": {
  1417. "consumes": [
  1418. "application/json"
  1419. ],
  1420. "produces": [
  1421. "application/json"
  1422. ],
  1423. "tags": [
  1424. "organization"
  1425. ],
  1426. "summary": "Update a label",
  1427. "operationId": "orgEditLabel",
  1428. "parameters": [
  1429. {
  1430. "type": "string",
  1431. "description": "name of the organization",
  1432. "name": "org",
  1433. "in": "path",
  1434. "required": true
  1435. },
  1436. {
  1437. "type": "integer",
  1438. "format": "int64",
  1439. "description": "id of the label to edit",
  1440. "name": "id",
  1441. "in": "path",
  1442. "required": true
  1443. },
  1444. {
  1445. "name": "body",
  1446. "in": "body",
  1447. "schema": {
  1448. "$ref": "#/definitions/EditLabelOption"
  1449. }
  1450. }
  1451. ],
  1452. "responses": {
  1453. "200": {
  1454. "$ref": "#/responses/Label"
  1455. },
  1456. "422": {
  1457. "$ref": "#/responses/validationError"
  1458. }
  1459. }
  1460. }
  1461. },
  1462. "/orgs/{org}/members": {
  1463. "get": {
  1464. "produces": [
  1465. "application/json"
  1466. ],
  1467. "tags": [
  1468. "organization"
  1469. ],
  1470. "summary": "List an organization's members",
  1471. "operationId": "orgListMembers",
  1472. "parameters": [
  1473. {
  1474. "type": "string",
  1475. "description": "name of the organization",
  1476. "name": "org",
  1477. "in": "path",
  1478. "required": true
  1479. },
  1480. {
  1481. "type": "integer",
  1482. "description": "page number of results to return (1-based)",
  1483. "name": "page",
  1484. "in": "query"
  1485. },
  1486. {
  1487. "type": "integer",
  1488. "description": "page size of results",
  1489. "name": "limit",
  1490. "in": "query"
  1491. }
  1492. ],
  1493. "responses": {
  1494. "200": {
  1495. "$ref": "#/responses/UserList"
  1496. }
  1497. }
  1498. }
  1499. },
  1500. "/orgs/{org}/members/{username}": {
  1501. "get": {
  1502. "tags": [
  1503. "organization"
  1504. ],
  1505. "summary": "Check if a user is a member of an organization",
  1506. "operationId": "orgIsMember",
  1507. "parameters": [
  1508. {
  1509. "type": "string",
  1510. "description": "name of the organization",
  1511. "name": "org",
  1512. "in": "path",
  1513. "required": true
  1514. },
  1515. {
  1516. "type": "string",
  1517. "description": "username of the user",
  1518. "name": "username",
  1519. "in": "path",
  1520. "required": true
  1521. }
  1522. ],
  1523. "responses": {
  1524. "204": {
  1525. "description": "user is a member"
  1526. },
  1527. "303": {
  1528. "description": "redirection to /orgs/{org}/public_members/{username}"
  1529. },
  1530. "404": {
  1531. "description": "user is not a member"
  1532. }
  1533. }
  1534. },
  1535. "delete": {
  1536. "produces": [
  1537. "application/json"
  1538. ],
  1539. "tags": [
  1540. "organization"
  1541. ],
  1542. "summary": "Remove a member from an organization",
  1543. "operationId": "orgDeleteMember",
  1544. "parameters": [
  1545. {
  1546. "type": "string",
  1547. "description": "name of the organization",
  1548. "name": "org",
  1549. "in": "path",
  1550. "required": true
  1551. },
  1552. {
  1553. "type": "string",
  1554. "description": "username of the user",
  1555. "name": "username",
  1556. "in": "path",
  1557. "required": true
  1558. }
  1559. ],
  1560. "responses": {
  1561. "204": {
  1562. "description": "member removed"
  1563. }
  1564. }
  1565. }
  1566. },
  1567. "/orgs/{org}/public_members": {
  1568. "get": {
  1569. "produces": [
  1570. "application/json"
  1571. ],
  1572. "tags": [
  1573. "organization"
  1574. ],
  1575. "summary": "List an organization's public members",
  1576. "operationId": "orgListPublicMembers",
  1577. "parameters": [
  1578. {
  1579. "type": "string",
  1580. "description": "name of the organization",
  1581. "name": "org",
  1582. "in": "path",
  1583. "required": true
  1584. },
  1585. {
  1586. "type": "integer",
  1587. "description": "page number of results to return (1-based)",
  1588. "name": "page",
  1589. "in": "query"
  1590. },
  1591. {
  1592. "type": "integer",
  1593. "description": "page size of results",
  1594. "name": "limit",
  1595. "in": "query"
  1596. }
  1597. ],
  1598. "responses": {
  1599. "200": {
  1600. "$ref": "#/responses/UserList"
  1601. }
  1602. }
  1603. }
  1604. },
  1605. "/orgs/{org}/public_members/{username}": {
  1606. "get": {
  1607. "tags": [
  1608. "organization"
  1609. ],
  1610. "summary": "Check if a user is a public member of an organization",
  1611. "operationId": "orgIsPublicMember",
  1612. "parameters": [
  1613. {
  1614. "type": "string",
  1615. "description": "name of the organization",
  1616. "name": "org",
  1617. "in": "path",
  1618. "required": true
  1619. },
  1620. {
  1621. "type": "string",
  1622. "description": "username of the user",
  1623. "name": "username",
  1624. "in": "path",
  1625. "required": true
  1626. }
  1627. ],
  1628. "responses": {
  1629. "204": {
  1630. "description": "user is a public member"
  1631. },
  1632. "404": {
  1633. "description": "user is not a public member"
  1634. }
  1635. }
  1636. },
  1637. "put": {
  1638. "produces": [
  1639. "application/json"
  1640. ],
  1641. "tags": [
  1642. "organization"
  1643. ],
  1644. "summary": "Publicize a user's membership",
  1645. "operationId": "orgPublicizeMember",
  1646. "parameters": [
  1647. {
  1648. "type": "string",
  1649. "description": "name of the organization",
  1650. "name": "org",
  1651. "in": "path",
  1652. "required": true
  1653. },
  1654. {
  1655. "type": "string",
  1656. "description": "username of the user",
  1657. "name": "username",
  1658. "in": "path",
  1659. "required": true
  1660. }
  1661. ],
  1662. "responses": {
  1663. "204": {
  1664. "description": "membership publicized"
  1665. },
  1666. "403": {
  1667. "$ref": "#/responses/forbidden"
  1668. }
  1669. }
  1670. },
  1671. "delete": {
  1672. "produces": [
  1673. "application/json"
  1674. ],
  1675. "tags": [
  1676. "organization"
  1677. ],
  1678. "summary": "Conceal a user's membership",
  1679. "operationId": "orgConcealMember",
  1680. "parameters": [
  1681. {
  1682. "type": "string",
  1683. "description": "name of the organization",
  1684. "name": "org",
  1685. "in": "path",
  1686. "required": true
  1687. },
  1688. {
  1689. "type": "string",
  1690. "description": "username of the user",
  1691. "name": "username",
  1692. "in": "path",
  1693. "required": true
  1694. }
  1695. ],
  1696. "responses": {
  1697. "204": {
  1698. "$ref": "#/responses/empty"
  1699. },
  1700. "403": {
  1701. "$ref": "#/responses/forbidden"
  1702. }
  1703. }
  1704. }
  1705. },
  1706. "/orgs/{org}/repos": {
  1707. "get": {
  1708. "produces": [
  1709. "application/json"
  1710. ],
  1711. "tags": [
  1712. "organization"
  1713. ],
  1714. "summary": "List an organization's repos",
  1715. "operationId": "orgListRepos",
  1716. "parameters": [
  1717. {
  1718. "type": "string",
  1719. "description": "name of the organization",
  1720. "name": "org",
  1721. "in": "path",
  1722. "required": true
  1723. },
  1724. {
  1725. "type": "integer",
  1726. "description": "page number of results to return (1-based)",
  1727. "name": "page",
  1728. "in": "query"
  1729. },
  1730. {
  1731. "type": "integer",
  1732. "description": "page size of results",
  1733. "name": "limit",
  1734. "in": "query"
  1735. }
  1736. ],
  1737. "responses": {
  1738. "200": {
  1739. "$ref": "#/responses/RepositoryList"
  1740. }
  1741. }
  1742. },
  1743. "post": {
  1744. "consumes": [
  1745. "application/json"
  1746. ],
  1747. "produces": [
  1748. "application/json"
  1749. ],
  1750. "tags": [
  1751. "organization"
  1752. ],
  1753. "summary": "Create a repository in an organization",
  1754. "operationId": "createOrgRepo",
  1755. "parameters": [
  1756. {
  1757. "type": "string",
  1758. "description": "name of organization",
  1759. "name": "org",
  1760. "in": "path",
  1761. "required": true
  1762. },
  1763. {
  1764. "name": "body",
  1765. "in": "body",
  1766. "schema": {
  1767. "$ref": "#/definitions/CreateRepoOption"
  1768. }
  1769. }
  1770. ],
  1771. "responses": {
  1772. "201": {
  1773. "$ref": "#/responses/Repository"
  1774. },
  1775. "403": {
  1776. "$ref": "#/responses/forbidden"
  1777. },
  1778. "404": {
  1779. "$ref": "#/responses/notFound"
  1780. }
  1781. }
  1782. }
  1783. },
  1784. "/orgs/{org}/teams": {
  1785. "get": {
  1786. "produces": [
  1787. "application/json"
  1788. ],
  1789. "tags": [
  1790. "organization"
  1791. ],
  1792. "summary": "List an organization's teams",
  1793. "operationId": "orgListTeams",
  1794. "parameters": [
  1795. {
  1796. "type": "string",
  1797. "description": "name of the organization",
  1798. "name": "org",
  1799. "in": "path",
  1800. "required": true
  1801. },
  1802. {
  1803. "type": "integer",
  1804. "description": "page number of results to return (1-based)",
  1805. "name": "page",
  1806. "in": "query"
  1807. },
  1808. {
  1809. "type": "integer",
  1810. "description": "page size of results",
  1811. "name": "limit",
  1812. "in": "query"
  1813. }
  1814. ],
  1815. "responses": {
  1816. "200": {
  1817. "$ref": "#/responses/TeamList"
  1818. }
  1819. }
  1820. },
  1821. "post": {
  1822. "consumes": [
  1823. "application/json"
  1824. ],
  1825. "produces": [
  1826. "application/json"
  1827. ],
  1828. "tags": [
  1829. "organization"
  1830. ],
  1831. "summary": "Create a team",
  1832. "operationId": "orgCreateTeam",
  1833. "parameters": [
  1834. {
  1835. "type": "string",
  1836. "description": "name of the organization",
  1837. "name": "org",
  1838. "in": "path",
  1839. "required": true
  1840. },
  1841. {
  1842. "name": "body",
  1843. "in": "body",
  1844. "schema": {
  1845. "$ref": "#/definitions/CreateTeamOption"
  1846. }
  1847. }
  1848. ],
  1849. "responses": {
  1850. "201": {
  1851. "$ref": "#/responses/Team"
  1852. },
  1853. "422": {
  1854. "$ref": "#/responses/validationError"
  1855. }
  1856. }
  1857. }
  1858. },
  1859. "/orgs/{org}/teams/search": {
  1860. "get": {
  1861. "produces": [
  1862. "application/json"
  1863. ],
  1864. "tags": [
  1865. "organization"
  1866. ],
  1867. "summary": "Search for teams within an organization",
  1868. "operationId": "teamSearch",
  1869. "parameters": [
  1870. {
  1871. "type": "string",
  1872. "description": "name of the organization",
  1873. "name": "org",
  1874. "in": "path",
  1875. "required": true
  1876. },
  1877. {
  1878. "type": "string",
  1879. "description": "keywords to search",
  1880. "name": "q",
  1881. "in": "query"
  1882. },
  1883. {
  1884. "type": "boolean",
  1885. "description": "include search within team description (defaults to true)",
  1886. "name": "include_desc",
  1887. "in": "query"
  1888. },
  1889. {
  1890. "type": "integer",
  1891. "description": "page number of results to return (1-based)",
  1892. "name": "page",
  1893. "in": "query"
  1894. },
  1895. {
  1896. "type": "integer",
  1897. "description": "page size of results",
  1898. "name": "limit",
  1899. "in": "query"
  1900. }
  1901. ],
  1902. "responses": {
  1903. "200": {
  1904. "description": "SearchResults of a successful search",
  1905. "schema": {
  1906. "type": "object",
  1907. "properties": {
  1908. "data": {
  1909. "type": "array",
  1910. "items": {
  1911. "$ref": "#/definitions/Team"
  1912. }
  1913. },
  1914. "ok": {
  1915. "type": "boolean"
  1916. }
  1917. }
  1918. }
  1919. }
  1920. }
  1921. }
  1922. },
  1923. "/packages/{owner}": {
  1924. "get": {
  1925. "produces": [
  1926. "application/json"
  1927. ],
  1928. "tags": [
  1929. "package"
  1930. ],
  1931. "summary": "Gets all packages of an owner",
  1932. "operationId": "listPackages",
  1933. "parameters": [
  1934. {
  1935. "type": "string",
  1936. "description": "owner of the packages",
  1937. "name": "owner",
  1938. "in": "path",
  1939. "required": true
  1940. },
  1941. {
  1942. "type": "integer",
  1943. "description": "page number of results to return (1-based)",
  1944. "name": "page",
  1945. "in": "query"
  1946. },
  1947. {
  1948. "type": "integer",
  1949. "description": "page size of results",
  1950. "name": "limit",
  1951. "in": "query"
  1952. },
  1953. {
  1954. "enum": [
  1955. "composer",
  1956. "conan",
  1957. "container",
  1958. "generic",
  1959. "helm",
  1960. "maven",
  1961. "npm",
  1962. "nuget",
  1963. "pypi",
  1964. "rubygems"
  1965. ],
  1966. "type": "string",
  1967. "description": "package type filter",
  1968. "name": "type",
  1969. "in": "query"
  1970. },
  1971. {
  1972. "type": "string",
  1973. "description": "name filter",
  1974. "name": "q",
  1975. "in": "query"
  1976. }
  1977. ],
  1978. "responses": {
  1979. "200": {
  1980. "$ref": "#/responses/PackageList"
  1981. }
  1982. }
  1983. }
  1984. },
  1985. "/packages/{owner}/{type}/{name}/{version}": {
  1986. "get": {
  1987. "produces": [
  1988. "application/json"
  1989. ],
  1990. "tags": [
  1991. "package"
  1992. ],
  1993. "summary": "Gets a package",
  1994. "operationId": "getPackage",
  1995. "parameters": [
  1996. {
  1997. "type": "string",
  1998. "description": "owner of the package",
  1999. "name": "owner",
  2000. "in": "path",
  2001. "required": true
  2002. },
  2003. {
  2004. "type": "string",
  2005. "description": "type of the package",
  2006. "name": "type",
  2007. "in": "path",
  2008. "required": true
  2009. },
  2010. {
  2011. "type": "string",
  2012. "description": "name of the package",
  2013. "name": "name",
  2014. "in": "path",
  2015. "required": true
  2016. },
  2017. {
  2018. "type": "string",
  2019. "description": "version of the package",
  2020. "name": "version",
  2021. "in": "path",
  2022. "required": true
  2023. }
  2024. ],
  2025. "responses": {
  2026. "200": {
  2027. "$ref": "#/responses/Package"
  2028. },
  2029. "404": {
  2030. "$ref": "#/responses/notFound"
  2031. }
  2032. }
  2033. },
  2034. "delete": {
  2035. "tags": [
  2036. "package"
  2037. ],
  2038. "summary": "Delete a package",
  2039. "operationId": "deletePackage",
  2040. "parameters": [
  2041. {
  2042. "type": "string",
  2043. "description": "owner of the package",
  2044. "name": "owner",
  2045. "in": "path",
  2046. "required": true
  2047. },
  2048. {
  2049. "type": "string",
  2050. "description": "type of the package",
  2051. "name": "type",
  2052. "in": "path",
  2053. "required": true
  2054. },
  2055. {
  2056. "type": "string",
  2057. "description": "name of the package",
  2058. "name": "name",
  2059. "in": "path",
  2060. "required": true
  2061. },
  2062. {
  2063. "type": "string",
  2064. "description": "version of the package",
  2065. "name": "version",
  2066. "in": "path",
  2067. "required": true
  2068. }
  2069. ],
  2070. "responses": {
  2071. "204": {
  2072. "$ref": "#/responses/empty"
  2073. },
  2074. "404": {
  2075. "$ref": "#/responses/notFound"
  2076. }
  2077. }
  2078. }
  2079. },
  2080. "/packages/{owner}/{type}/{name}/{version}/files": {
  2081. "get": {
  2082. "produces": [
  2083. "application/json"
  2084. ],
  2085. "tags": [
  2086. "package"
  2087. ],
  2088. "summary": "Gets all files of a package",
  2089. "operationId": "listPackageFiles",
  2090. "parameters": [
  2091. {
  2092. "type": "string",
  2093. "description": "owner of the package",
  2094. "name": "owner",
  2095. "in": "path",
  2096. "required": true
  2097. },
  2098. {
  2099. "type": "string",
  2100. "description": "type of the package",
  2101. "name": "type",
  2102. "in": "path",
  2103. "required": true
  2104. },
  2105. {
  2106. "type": "string",
  2107. "description": "name of the package",
  2108. "name": "name",
  2109. "in": "path",
  2110. "required": true
  2111. },
  2112. {
  2113. "type": "string",
  2114. "description": "version of the package",
  2115. "name": "version",
  2116. "in": "path",
  2117. "required": true
  2118. }
  2119. ],
  2120. "responses": {
  2121. "200": {
  2122. "$ref": "#/responses/PackageFileList"
  2123. },
  2124. "404": {
  2125. "$ref": "#/responses/notFound"
  2126. }
  2127. }
  2128. }
  2129. },
  2130. "/repos/issues/search": {
  2131. "get": {
  2132. "produces": [
  2133. "application/json"
  2134. ],
  2135. "tags": [
  2136. "issue"
  2137. ],
  2138. "summary": "Search for issues across the repositories that the user has access to",
  2139. "operationId": "issueSearchIssues",
  2140. "parameters": [
  2141. {
  2142. "type": "string",
  2143. "description": "whether issue is open or closed",
  2144. "name": "state",
  2145. "in": "query"
  2146. },
  2147. {
  2148. "type": "string",
  2149. "description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded",
  2150. "name": "labels",
  2151. "in": "query"
  2152. },
  2153. {
  2154. "type": "string",
  2155. "description": "comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded",
  2156. "name": "milestones",
  2157. "in": "query"
  2158. },
  2159. {
  2160. "type": "string",
  2161. "description": "search string",
  2162. "name": "q",
  2163. "in": "query"
  2164. },
  2165. {
  2166. "type": "integer",
  2167. "format": "int64",
  2168. "description": "repository to prioritize in the results",
  2169. "name": "priority_repo_id",
  2170. "in": "query"
  2171. },
  2172. {
  2173. "type": "string",
  2174. "description": "filter by type (issues / pulls) if set",
  2175. "name": "type",
  2176. "in": "query"
  2177. },
  2178. {
  2179. "type": "string",
  2180. "format": "date-time",
  2181. "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format",
  2182. "name": "since",
  2183. "in": "query"
  2184. },
  2185. {
  2186. "type": "string",
  2187. "format": "date-time",
  2188. "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format",
  2189. "name": "before",
  2190. "in": "query"
  2191. },
  2192. {
  2193. "type": "boolean",
  2194. "description": "filter (issues / pulls) assigned to you, default is false",
  2195. "name": "assigned",
  2196. "in": "query"
  2197. },
  2198. {
  2199. "type": "boolean",
  2200. "description": "filter (issues / pulls) created by you, default is false",
  2201. "name": "created",
  2202. "in": "query"
  2203. },
  2204. {
  2205. "type": "boolean",
  2206. "description": "filter (issues / pulls) mentioning you, default is false",
  2207. "name": "mentioned",
  2208. "in": "query"
  2209. },
  2210. {
  2211. "type": "boolean",
  2212. "description": "filter pulls requesting your review, default is false",
  2213. "name": "review_requested",
  2214. "in": "query"
  2215. },
  2216. {
  2217. "type": "string",
  2218. "description": "filter by owner",
  2219. "name": "owner",
  2220. "in": "query"
  2221. },
  2222. {
  2223. "type": "string",
  2224. "description": "filter by team (requires organization owner parameter to be provided)",
  2225. "name": "team",
  2226. "in": "query"
  2227. },
  2228. {
  2229. "type": "integer",
  2230. "description": "page number of results to return (1-based)",
  2231. "name": "page",
  2232. "in": "query"
  2233. },
  2234. {
  2235. "type": "integer",
  2236. "description": "page size of results",
  2237. "name": "limit",
  2238. "in": "query"
  2239. }
  2240. ],
  2241. "responses": {
  2242. "200": {
  2243. "$ref": "#/responses/IssueList"
  2244. }
  2245. }
  2246. }
  2247. },
  2248. "/repos/migrate": {
  2249. "post": {
  2250. "consumes": [
  2251. "application/json"
  2252. ],
  2253. "produces": [
  2254. "application/json"
  2255. ],
  2256. "tags": [
  2257. "repository"
  2258. ],
  2259. "summary": "Migrate a remote git repository",
  2260. "operationId": "repoMigrate",
  2261. "parameters": [
  2262. {
  2263. "name": "body",
  2264. "in": "body",
  2265. "schema": {
  2266. "$ref": "#/definitions/MigrateRepoOptions"
  2267. }
  2268. }
  2269. ],
  2270. "responses": {
  2271. "201": {
  2272. "$ref": "#/responses/Repository"
  2273. },
  2274. "403": {
  2275. "$ref": "#/responses/forbidden"
  2276. },
  2277. "409": {
  2278. "description": "The repository with the same name already exists."
  2279. },
  2280. "422": {
  2281. "$ref": "#/responses/validationError"
  2282. }
  2283. }
  2284. }
  2285. },
  2286. "/repos/search": {
  2287. "get": {
  2288. "produces": [
  2289. "application/json"
  2290. ],
  2291. "tags": [
  2292. "repository"
  2293. ],
  2294. "summary": "Search for repositories",
  2295. "operationId": "repoSearch",
  2296. "parameters": [
  2297. {
  2298. "type": "string",
  2299. "description": "keyword",
  2300. "name": "q",
  2301. "in": "query"
  2302. },
  2303. {
  2304. "type": "boolean",
  2305. "description": "Limit search to repositories with keyword as topic",
  2306. "name": "topic",
  2307. "in": "query"
  2308. },
  2309. {
  2310. "type": "boolean",
  2311. "description": "include search of keyword within repository description",
  2312. "name": "includeDesc",
  2313. "in": "query"
  2314. },
  2315. {
  2316. "type": "integer",
  2317. "format": "int64",
  2318. "description": "search only for repos that the user with the given id owns or contributes to",
  2319. "name": "uid",
  2320. "in": "query"
  2321. },
  2322. {
  2323. "type": "integer",
  2324. "format": "int64",
  2325. "description": "repo owner to prioritize in the results",
  2326. "name": "priority_owner_id",
  2327. "in": "query"
  2328. },
  2329. {
  2330. "type": "integer",
  2331. "format": "int64",
  2332. "description": "search only for repos that belong to the given team id",
  2333. "name": "team_id",
  2334. "in": "query"
  2335. },
  2336. {
  2337. "type": "integer",
  2338. "format": "int64",
  2339. "description": "search only for repos that the user with the given id has starred",
  2340. "name": "starredBy",
  2341. "in": "query"
  2342. },
  2343. {
  2344. "type": "boolean",
  2345. "description": "include private repositories this user has access to (defaults to true)",
  2346. "name": "private",
  2347. "in": "query"
  2348. },
  2349. {
  2350. "type": "boolean",
  2351. "description": "show only pubic, private or all repositories (defaults to all)",
  2352. "name": "is_private",
  2353. "in": "query"
  2354. },
  2355. {
  2356. "type": "boolean",
  2357. "description": "include template repositories this user has access to (defaults to true)",
  2358. "name": "template",
  2359. "in": "query"
  2360. },
  2361. {
  2362. "type": "boolean",
  2363. "description": "show only archived, non-archived or all repositories (defaults to all)",
  2364. "name": "archived",
  2365. "in": "query"
  2366. },
  2367. {
  2368. "type": "string",
  2369. "description": "type of repository to search for. Supported values are \"fork\", \"source\", \"mirror\" and \"collaborative\"",
  2370. "name": "mode",
  2371. "in": "query"
  2372. },
  2373. {
  2374. "type": "boolean",
  2375. "description": "if `uid` is given, search only for repos that the user owns",
  2376. "name": "exclusive",
  2377. "in": "query"
  2378. },
  2379. {
  2380. "type": "string",
  2381. "description": "sort repos by attribute. Supported values are \"alpha\", \"created\", \"updated\", \"size\", and \"id\". Default is \"alpha\"",
  2382. "name": "sort",
  2383. "in": "query"
  2384. },
  2385. {
  2386. "type": "string",
  2387. "description": "sort order, either \"asc\" (ascending) or \"desc\" (descending). Default is \"asc\", ignored if \"sort\" is not specified.",
  2388. "name": "order",
  2389. "in": "query"
  2390. },
  2391. {
  2392. "type": "integer",
  2393. "description": "page number of results to return (1-based)",
  2394. "name": "page",
  2395. "in": "query"
  2396. },
  2397. {
  2398. "type": "integer",
  2399. "description": "page size of results",
  2400. "name": "limit",
  2401. "in": "query"
  2402. }
  2403. ],
  2404. "responses": {
  2405. "200": {
  2406. "$ref": "#/responses/SearchResults"
  2407. },
  2408. "422": {
  2409. "$ref": "#/responses/validationError"
  2410. }
  2411. }
  2412. }
  2413. },
  2414. "/repos/{owner}/{repo}": {
  2415. "get": {
  2416. "produces": [
  2417. "application/json"
  2418. ],
  2419. "tags": [
  2420. "repository"
  2421. ],
  2422. "summary": "Get a repository",
  2423. "operationId": "repoGet",
  2424. "parameters": [
  2425. {
  2426. "type": "string",
  2427. "description": "owner of the repo",
  2428. "name": "owner",
  2429. "in": "path",
  2430. "required": true
  2431. },
  2432. {
  2433. "type": "string",
  2434. "description": "name of the repo",
  2435. "name": "repo",
  2436. "in": "path",
  2437. "required": true
  2438. }
  2439. ],
  2440. "responses": {
  2441. "200": {
  2442. "$ref": "#/responses/Repository"
  2443. }
  2444. }
  2445. },
  2446. "delete": {
  2447. "produces": [
  2448. "application/json"
  2449. ],
  2450. "tags": [
  2451. "repository"
  2452. ],
  2453. "summary": "Delete a repository",
  2454. "operationId": "repoDelete",
  2455. "parameters": [
  2456. {
  2457. "type": "string",
  2458. "description": "owner of the repo to delete",
  2459. "name": "owner",
  2460. "in": "path",
  2461. "required": true
  2462. },
  2463. {
  2464. "type": "string",
  2465. "description": "name of the repo to delete",
  2466. "name": "repo",
  2467. "in": "path",
  2468. "required": true
  2469. }
  2470. ],
  2471. "responses": {
  2472. "204": {
  2473. "$ref": "#/responses/empty"
  2474. },
  2475. "403": {
  2476. "$ref": "#/responses/forbidden"
  2477. }
  2478. }
  2479. },
  2480. "patch": {
  2481. "produces": [
  2482. "application/json"
  2483. ],
  2484. "tags": [
  2485. "repository"
  2486. ],
  2487. "summary": "Edit a repository's properties. Only fields that are set will be changed.",
  2488. "operationId": "repoEdit",
  2489. "parameters": [
  2490. {
  2491. "type": "string",
  2492. "description": "owner of the repo to edit",
  2493. "name": "owner",
  2494. "in": "path",
  2495. "required": true
  2496. },
  2497. {
  2498. "type": "string",
  2499. "description": "name of the repo to edit",
  2500. "name": "repo",
  2501. "in": "path",
  2502. "required": true
  2503. },
  2504. {
  2505. "description": "Properties of a repo that you can edit",
  2506. "name": "body",
  2507. "in": "body",
  2508. "schema": {
  2509. "$ref": "#/definitions/EditRepoOption"
  2510. }
  2511. }
  2512. ],
  2513. "responses": {
  2514. "200": {
  2515. "$ref": "#/responses/Repository"
  2516. },
  2517. "403": {
  2518. "$ref": "#/responses/forbidden"
  2519. },
  2520. "422": {
  2521. "$ref": "#/responses/validationError"
  2522. }
  2523. }
  2524. }
  2525. },
  2526. "/repos/{owner}/{repo}/archive/{archive}": {
  2527. "get": {
  2528. "produces": [
  2529. "application/json"
  2530. ],
  2531. "tags": [
  2532. "repository"
  2533. ],
  2534. "summary": "Get an archive of a repository",
  2535. "operationId": "repoGetArchive",
  2536. "parameters": [
  2537. {
  2538. "type": "string",
  2539. "description": "owner of the repo",
  2540. "name": "owner",
  2541. "in": "path",
  2542. "required": true
  2543. },
  2544. {
  2545. "type": "string",
  2546. "description": "name of the repo",
  2547. "name": "repo",
  2548. "in": "path",
  2549. "required": true
  2550. },
  2551. {
  2552. "type": "string",
  2553. "description": "the git reference for download with attached archive format (e.g. master.zip)",
  2554. "name": "archive",
  2555. "in": "path",
  2556. "required": true
  2557. }
  2558. ],
  2559. "responses": {
  2560. "200": {
  2561. "description": "success"
  2562. },
  2563. "404": {
  2564. "$ref": "#/responses/notFound"
  2565. }
  2566. }
  2567. }
  2568. },
  2569. "/repos/{owner}/{repo}/assignees": {
  2570. "get": {
  2571. "produces": [
  2572. "application/json"
  2573. ],
  2574. "tags": [
  2575. "repository"
  2576. ],
  2577. "summary": "Return all users that have write access and can be assigned to issues",
  2578. "operationId": "repoGetAssignees",
  2579. "parameters": [
  2580. {
  2581. "type": "string",
  2582. "description": "owner of the repo",
  2583. "name": "owner",
  2584. "in": "path",
  2585. "required": true
  2586. },
  2587. {
  2588. "type": "string",
  2589. "description": "name of the repo",
  2590. "name": "repo",
  2591. "in": "path",
  2592. "required": true
  2593. }
  2594. ],
  2595. "responses": {
  2596. "200": {
  2597. "$ref": "#/responses/UserList"
  2598. }
  2599. }
  2600. }
  2601. },
  2602. "/repos/{owner}/{repo}/branch_protections": {
  2603. "get": {
  2604. "produces": [
  2605. "application/json"
  2606. ],
  2607. "tags": [
  2608. "repository"
  2609. ],
  2610. "summary": "List branch protections for a repository",
  2611. "operationId": "repoListBranchProtection",
  2612. "parameters": [
  2613. {
  2614. "type": "string",
  2615. "description": "owner of the repo",
  2616. "name": "owner",
  2617. "in": "path",
  2618. "required": true
  2619. },
  2620. {
  2621. "type": "string",
  2622. "description": "name of the repo",
  2623. "name": "repo",
  2624. "in": "path",
  2625. "required": true
  2626. }
  2627. ],
  2628. "responses": {
  2629. "200": {
  2630. "$ref": "#/responses/BranchProtectionList"
  2631. }
  2632. }
  2633. },
  2634. "post": {
  2635. "consumes": [
  2636. "application/json"
  2637. ],
  2638. "produces": [
  2639. "application/json"
  2640. ],
  2641. "tags": [
  2642. "repository"
  2643. ],
  2644. "summary": "Create a branch protections for a repository",
  2645. "operationId": "repoCreateBranchProtection",
  2646. "parameters": [
  2647. {
  2648. "type": "string",
  2649. "description": "owner of the repo",
  2650. "name": "owner",
  2651. "in": "path",
  2652. "required": true
  2653. },
  2654. {
  2655. "type": "string",
  2656. "description": "name of the repo",
  2657. "name": "repo",
  2658. "in": "path",
  2659. "required": true
  2660. },
  2661. {
  2662. "name": "body",
  2663. "in": "body",
  2664. "schema": {
  2665. "$ref": "#/definitions/CreateBranchProtectionOption"
  2666. }
  2667. }
  2668. ],
  2669. "responses": {
  2670. "201": {
  2671. "$ref": "#/responses/BranchProtection"
  2672. },
  2673. "403": {
  2674. "$ref": "#/responses/forbidden"
  2675. },
  2676. "404": {
  2677. "$ref": "#/responses/notFound"
  2678. },
  2679. "422": {
  2680. "$ref": "#/responses/validationError"
  2681. }
  2682. }
  2683. }
  2684. },
  2685. "/repos/{owner}/{repo}/branch_protections/{name}": {
  2686. "get": {
  2687. "produces": [
  2688. "application/json"
  2689. ],
  2690. "tags": [
  2691. "repository"
  2692. ],
  2693. "summary": "Get a specific branch protection for the repository",
  2694. "operationId": "repoGetBranchProtection",
  2695. "parameters": [
  2696. {
  2697. "type": "string",
  2698. "description": "owner of the repo",
  2699. "name": "owner",
  2700. "in": "path",
  2701. "required": true
  2702. },
  2703. {
  2704. "type": "string",
  2705. "description": "name of the repo",
  2706. "name": "repo",
  2707. "in": "path",
  2708. "required": true
  2709. },
  2710. {
  2711. "type": "string",
  2712. "description": "name of protected branch",
  2713. "name": "name",
  2714. "in": "path",
  2715. "required": true
  2716. }
  2717. ],
  2718. "responses": {
  2719. "200": {
  2720. "$ref": "#/responses/BranchProtection"
  2721. },
  2722. "404": {
  2723. "$ref": "#/responses/notFound"
  2724. }
  2725. }
  2726. },
  2727. "delete": {
  2728. "produces": [
  2729. "application/json"
  2730. ],
  2731. "tags": [
  2732. "repository"
  2733. ],
  2734. "summary": "Delete a specific branch protection for the repository",
  2735. "operationId": "repoDeleteBranchProtection",
  2736. "parameters": [
  2737. {
  2738. "type": "string",
  2739. "description": "owner of the repo",
  2740. "name": "owner",
  2741. "in": "path",
  2742. "required": true
  2743. },
  2744. {
  2745. "type": "string",
  2746. "description": "name of the repo",
  2747. "name": "repo",
  2748. "in": "path",
  2749. "required": true
  2750. },
  2751. {
  2752. "type": "string",
  2753. "description": "name of protected branch",
  2754. "name": "name",
  2755. "in": "path",
  2756. "required": true
  2757. }
  2758. ],
  2759. "responses": {
  2760. "204": {
  2761. "$ref": "#/responses/empty"
  2762. },
  2763. "404": {
  2764. "$ref": "#/responses/notFound"
  2765. }
  2766. }
  2767. },
  2768. "patch": {
  2769. "consumes": [
  2770. "application/json"
  2771. ],
  2772. "produces": [
  2773. "application/json"
  2774. ],
  2775. "tags": [
  2776. "repository"
  2777. ],
  2778. "summary": "Edit a branch protections for a repository. Only fields that are set will be changed",
  2779. "operationId": "repoEditBranchProtection",
  2780. "parameters": [
  2781. {
  2782. "type": "string",
  2783. "description": "owner of the repo",
  2784. "name": "owner",
  2785. "in": "path",
  2786. "required": true
  2787. },
  2788. {
  2789. "type": "string",
  2790. "description": "name of the repo",
  2791. "name": "repo",
  2792. "in": "path",
  2793. "required": true
  2794. },
  2795. {
  2796. "type": "string",
  2797. "description": "name of protected branch",
  2798. "name": "name",
  2799. "in": "path",
  2800. "required": true
  2801. },
  2802. {
  2803. "name": "body",
  2804. "in": "body",
  2805. "schema": {
  2806. "$ref": "#/definitions/EditBranchProtectionOption"
  2807. }
  2808. }
  2809. ],
  2810. "responses": {
  2811. "200": {
  2812. "$ref": "#/responses/BranchProtection"
  2813. },
  2814. "404": {
  2815. "$ref": "#/responses/notFound"
  2816. },
  2817. "422": {
  2818. "$ref": "#/responses/validationError"
  2819. }
  2820. }
  2821. }
  2822. },
  2823. "/repos/{owner}/{repo}/branches": {
  2824. "get": {
  2825. "produces": [
  2826. "application/json"
  2827. ],
  2828. "tags": [
  2829. "repository"
  2830. ],
  2831. "summary": "List a repository's branches",
  2832. "operationId": "repoListBranches",
  2833. "parameters": [
  2834. {
  2835. "type": "string",
  2836. "description": "owner of the repo",
  2837. "name": "owner",
  2838. "in": "path",
  2839. "required": true
  2840. },
  2841. {
  2842. "type": "string",
  2843. "description": "name of the repo",
  2844. "name": "repo",
  2845. "in": "path",
  2846. "required": true
  2847. },
  2848. {
  2849. "type": "integer",
  2850. "description": "page number of results to return (1-based)",
  2851. "name": "page",
  2852. "in": "query"
  2853. },
  2854. {
  2855. "type": "integer",
  2856. "description": "page size of results",
  2857. "name": "limit",
  2858. "in": "query"
  2859. }
  2860. ],
  2861. "responses": {
  2862. "200": {
  2863. "$ref": "#/responses/BranchList"
  2864. }
  2865. }
  2866. },
  2867. "post": {
  2868. "consumes": [
  2869. "application/json"
  2870. ],
  2871. "produces": [
  2872. "application/json"
  2873. ],
  2874. "tags": [
  2875. "repository"
  2876. ],
  2877. "summary": "Create a branch",
  2878. "operationId": "repoCreateBranch",
  2879. "parameters": [
  2880. {
  2881. "type": "string",
  2882. "description": "owner of the repo",
  2883. "name": "owner",
  2884. "in": "path",
  2885. "required": true
  2886. },
  2887. {
  2888. "type": "string",
  2889. "description": "name of the repo",
  2890. "name": "repo",
  2891. "in": "path",
  2892. "required": true
  2893. },
  2894. {
  2895. "name": "body",
  2896. "in": "body",
  2897. "schema": {
  2898. "$ref": "#/definitions/CreateBranchRepoOption"
  2899. }
  2900. }
  2901. ],
  2902. "responses": {
  2903. "201": {
  2904. "$ref": "#/responses/Branch"
  2905. },
  2906. "404": {
  2907. "description": "The old branch does not exist."
  2908. },
  2909. "409": {
  2910. "description": "The branch with the same name already exists."
  2911. }
  2912. }
  2913. }
  2914. },
  2915. "/repos/{owner}/{repo}/branches/{branch}": {
  2916. "get": {
  2917. "produces": [
  2918. "application/json"
  2919. ],
  2920. "tags": [
  2921. "repository"
  2922. ],
  2923. "summary": "Retrieve a specific branch from a repository, including its effective branch protection",
  2924. "operationId": "repoGetBranch",
  2925. "parameters": [
  2926. {
  2927. "type": "string",
  2928. "description": "owner of the repo",
  2929. "name": "owner",
  2930. "in": "path",
  2931. "required": true
  2932. },
  2933. {
  2934. "type": "string",
  2935. "description": "name of the repo",
  2936. "name": "repo",
  2937. "in": "path",
  2938. "required": true
  2939. },
  2940. {
  2941. "type": "string",
  2942. "description": "branch to get",
  2943. "name": "branch",
  2944. "in": "path",
  2945. "required": true
  2946. }
  2947. ],
  2948. "responses": {
  2949. "200": {
  2950. "$ref": "#/responses/Branch"
  2951. },
  2952. "404": {
  2953. "$ref": "#/responses/notFound"
  2954. }
  2955. }
  2956. },
  2957. "delete": {
  2958. "produces": [
  2959. "application/json"
  2960. ],
  2961. "tags": [
  2962. "repository"
  2963. ],
  2964. "summary": "Delete a specific branch from a repository",
  2965. "operationId": "repoDeleteBranch",
  2966. "parameters": [
  2967. {
  2968. "type": "string",
  2969. "description": "owner of the repo",
  2970. "name": "owner",
  2971. "in": "path",
  2972. "required": true
  2973. },
  2974. {
  2975. "type": "string",
  2976. "description": "name of the repo",
  2977. "name": "repo",
  2978. "in": "path",
  2979. "required": true
  2980. },
  2981. {
  2982. "type": "string",
  2983. "description": "branch to delete",
  2984. "name": "branch",
  2985. "in": "path",
  2986. "required": true
  2987. }
  2988. ],
  2989. "responses": {
  2990. "204": {
  2991. "$ref": "#/responses/empty"
  2992. },
  2993. "403": {
  2994. "$ref": "#/responses/error"
  2995. },
  2996. "404": {
  2997. "$ref": "#/responses/notFound"
  2998. }
  2999. }
  3000. }
  3001. },
  3002. "/repos/{owner}/{repo}/collaborators": {
  3003. "get": {
  3004. "produces": [
  3005. "application/json"
  3006. ],
  3007. "tags": [
  3008. "repository"
  3009. ],
  3010. "summary": "List a repository's collaborators",
  3011. "operationId": "repoListCollaborators",
  3012. "parameters": [
  3013. {
  3014. "type": "string",
  3015. "description": "owner of the repo",
  3016. "name": "owner",
  3017. "in": "path",
  3018. "required": true
  3019. },
  3020. {
  3021. "type": "string",
  3022. "description": "name of the repo",
  3023. "name": "repo",
  3024. "in": "path",
  3025. "required": true
  3026. },
  3027. {
  3028. "type": "integer",
  3029. "description": "page number of results to return (1-based)",
  3030. "name": "page",
  3031. "in": "query"
  3032. },
  3033. {
  3034. "type": "integer",
  3035. "description": "page size of results",
  3036. "name": "limit",
  3037. "in": "query"
  3038. }
  3039. ],
  3040. "responses": {
  3041. "200": {
  3042. "$ref": "#/responses/UserList"
  3043. }
  3044. }
  3045. }
  3046. },
  3047. "/repos/{owner}/{repo}/collaborators/{collaborator}": {
  3048. "get": {
  3049. "produces": [
  3050. "application/json"
  3051. ],
  3052. "tags": [
  3053. "repository"
  3054. ],
  3055. "summary": "Check if a user is a collaborator of a repository",
  3056. "operationId": "repoCheckCollaborator",
  3057. "parameters": [
  3058. {
  3059. "type": "string",
  3060. "description": "owner of the repo",
  3061. "name": "owner",
  3062. "in": "path",
  3063. "required": true
  3064. },
  3065. {
  3066. "type": "string",
  3067. "description": "name of the repo",
  3068. "name": "repo",
  3069. "in": "path",
  3070. "required": true
  3071. },
  3072. {
  3073. "type": "string",
  3074. "description": "username of the collaborator",
  3075. "name": "collaborator",
  3076. "in": "path",
  3077. "required": true
  3078. }
  3079. ],
  3080. "responses": {
  3081. "204": {
  3082. "$ref": "#/responses/empty"
  3083. },
  3084. "404": {
  3085. "$ref": "#/responses/notFound"
  3086. },
  3087. "422": {
  3088. "$ref": "#/responses/validationError"
  3089. }
  3090. }
  3091. },
  3092. "put": {
  3093. "produces": [
  3094. "application/json"
  3095. ],
  3096. "tags": [
  3097. "repository"
  3098. ],
  3099. "summary": "Add a collaborator to a repository",
  3100. "operationId": "repoAddCollaborator",
  3101. "parameters": [
  3102. {
  3103. "type": "string",
  3104. "description": "owner of the repo",
  3105. "name": "owner",
  3106. "in": "path",
  3107. "required": true
  3108. },
  3109. {
  3110. "type": "string",
  3111. "description": "name of the repo",
  3112. "name": "repo",
  3113. "in": "path",
  3114. "required": true
  3115. },
  3116. {
  3117. "type": "string",
  3118. "description": "username of the collaborator to add",
  3119. "name": "collaborator",
  3120. "in": "path",
  3121. "required": true
  3122. },
  3123. {
  3124. "name": "body",
  3125. "in": "body",
  3126. "schema": {
  3127. "$ref": "#/definitions/AddCollaboratorOption"
  3128. }
  3129. }
  3130. ],
  3131. "responses": {
  3132. "204": {
  3133. "$ref": "#/responses/empty"
  3134. },
  3135. "422": {
  3136. "$ref": "#/responses/validationError"
  3137. }
  3138. }
  3139. },
  3140. "delete": {
  3141. "produces": [
  3142. "application/json"
  3143. ],
  3144. "tags": [
  3145. "repository"
  3146. ],
  3147. "summary": "Delete a collaborator from a repository",
  3148. "operationId": "repoDeleteCollaborator",
  3149. "parameters": [
  3150. {
  3151. "type": "string",
  3152. "description": "owner of the repo",
  3153. "name": "owner",
  3154. "in": "path",
  3155. "required": true
  3156. },
  3157. {
  3158. "type": "string",
  3159. "description": "name of the repo",
  3160. "name": "repo",
  3161. "in": "path",
  3162. "required": true
  3163. },
  3164. {
  3165. "type": "string",
  3166. "description": "username of the collaborator to delete",
  3167. "name": "collaborator",
  3168. "in": "path",
  3169. "required": true
  3170. }
  3171. ],
  3172. "responses": {
  3173. "204": {
  3174. "$ref": "#/responses/empty"
  3175. },
  3176. "422": {
  3177. "$ref": "#/responses/validationError"
  3178. }
  3179. }
  3180. }
  3181. },
  3182. "/repos/{owner}/{repo}/collaborators/{collaborator}/permission": {
  3183. "get": {
  3184. "produces": [
  3185. "application/json"
  3186. ],
  3187. "tags": [
  3188. "repository"
  3189. ],
  3190. "summary": "Get repository permissions for a user",
  3191. "operationId": "repoGetRepoPermissions",
  3192. "parameters": [
  3193. {
  3194. "type": "string",
  3195. "description": "owner of the repo",
  3196. "name": "owner",
  3197. "in": "path",
  3198. "required": true
  3199. },
  3200. {
  3201. "type": "string",
  3202. "description": "name of the repo",
  3203. "name": "repo",
  3204. "in": "path",
  3205. "required": true
  3206. },
  3207. {
  3208. "type": "string",
  3209. "description": "username of the collaborator",
  3210. "name": "collaborator",
  3211. "in": "path",
  3212. "required": true
  3213. }
  3214. ],
  3215. "responses": {
  3216. "200": {
  3217. "$ref": "#/responses/RepoCollaboratorPermission"
  3218. },
  3219. "403": {
  3220. "$ref": "#/responses/forbidden"
  3221. },
  3222. "404": {
  3223. "$ref": "#/responses/notFound"
  3224. }
  3225. }
  3226. }
  3227. },
  3228. "/repos/{owner}/{repo}/commits": {
  3229. "get": {
  3230. "produces": [
  3231. "application/json"
  3232. ],
  3233. "tags": [
  3234. "repository"
  3235. ],
  3236. "summary": "Get a list of all commits from a repository",
  3237. "operationId": "repoGetAllCommits",
  3238. "parameters": [
  3239. {
  3240. "type": "string",
  3241. "description": "owner of the repo",
  3242. "name": "owner",
  3243. "in": "path",
  3244. "required": true
  3245. },
  3246. {
  3247. "type": "string",
  3248. "description": "name of the repo",
  3249. "name": "repo",
  3250. "in": "path",
  3251. "required": true
  3252. },
  3253. {
  3254. "type": "string",
  3255. "description": "SHA or branch to start listing commits from (usually 'master')",
  3256. "name": "sha",
  3257. "in": "query"
  3258. },
  3259. {
  3260. "type": "string",
  3261. "description": "filepath of a file/dir",
  3262. "name": "path",
  3263. "in": "query"
  3264. },
  3265. {
  3266. "type": "integer",
  3267. "description": "page number of results to return (1-based)",
  3268. "name": "page",
  3269. "in": "query"
  3270. },
  3271. {
  3272. "type": "integer",
  3273. "description": "page size of results (ignored if used with 'path')",
  3274. "name": "limit",
  3275. "in": "query"
  3276. }
  3277. ],
  3278. "responses": {
  3279. "200": {
  3280. "$ref": "#/responses/CommitList"
  3281. },
  3282. "404": {
  3283. "$ref": "#/responses/notFound"
  3284. },
  3285. "409": {
  3286. "$ref": "#/responses/EmptyRepository"
  3287. }
  3288. }
  3289. }
  3290. },
  3291. "/repos/{owner}/{repo}/commits/{ref}/status": {
  3292. "get": {
  3293. "produces": [
  3294. "application/json"
  3295. ],
  3296. "tags": [
  3297. "repository"
  3298. ],
  3299. "summary": "Get a commit's combined status, by branch/tag/commit reference",
  3300. "operationId": "repoGetCombinedStatusByRef",
  3301. "parameters": [
  3302. {
  3303. "type": "string",
  3304. "description": "owner of the repo",
  3305. "name": "owner",
  3306. "in": "path",
  3307. "required": true
  3308. },
  3309. {
  3310. "type": "string",
  3311. "description": "name of the repo",
  3312. "name": "repo",
  3313. "in": "path",
  3314. "required": true
  3315. },
  3316. {
  3317. "type": "string",
  3318. "description": "name of branch/tag/commit",
  3319. "name": "ref",
  3320. "in": "path",
  3321. "required": true
  3322. },
  3323. {
  3324. "type": "integer",
  3325. "description": "page number of results to return (1-based)",
  3326. "name": "page",
  3327. "in": "query"
  3328. },
  3329. {
  3330. "type": "integer",
  3331. "description": "page size of results",
  3332. "name": "limit",
  3333. "in": "query"
  3334. }
  3335. ],
  3336. "responses": {
  3337. "200": {
  3338. "$ref": "#/responses/CombinedStatus"
  3339. },
  3340. "400": {
  3341. "$ref": "#/responses/error"
  3342. }
  3343. }
  3344. }
  3345. },
  3346. "/repos/{owner}/{repo}/commits/{ref}/statuses": {
  3347. "get": {
  3348. "produces": [
  3349. "application/json"
  3350. ],
  3351. "tags": [
  3352. "repository"
  3353. ],
  3354. "summary": "Get a commit's statuses, by branch/tag/commit reference",
  3355. "operationId": "repoListStatusesByRef",
  3356. "parameters": [
  3357. {
  3358. "type": "string",
  3359. "description": "owner of the repo",
  3360. "name": "owner",
  3361. "in": "path",
  3362. "required": true
  3363. },
  3364. {
  3365. "type": "string",
  3366. "description": "name of the repo",
  3367. "name": "repo",
  3368. "in": "path",
  3369. "required": true
  3370. },
  3371. {
  3372. "type": "string",
  3373. "description": "name of branch/tag/commit",
  3374. "name": "ref",
  3375. "in": "path",
  3376. "required": true
  3377. },
  3378. {
  3379. "enum": [
  3380. "oldest",
  3381. "recentupdate",
  3382. "leastupdate",
  3383. "leastindex",
  3384. "highestindex"
  3385. ],
  3386. "type": "string",
  3387. "description": "type of sort",
  3388. "name": "sort",
  3389. "in": "query"
  3390. },
  3391. {
  3392. "enum": [
  3393. "pending",
  3394. "success",
  3395. "error",
  3396. "failure",
  3397. "warning"
  3398. ],
  3399. "type": "string",
  3400. "description": "type of state",
  3401. "name": "state",
  3402. "in": "query"
  3403. },
  3404. {
  3405. "type": "integer",
  3406. "description": "page number of results to return (1-based)",
  3407. "name": "page",
  3408. "in": "query"
  3409. },
  3410. {
  3411. "type": "integer",
  3412. "description": "page size of results",
  3413. "name": "limit",
  3414. "in": "query"
  3415. }
  3416. ],
  3417. "responses": {
  3418. "200": {
  3419. "$ref": "#/responses/CommitStatusList"
  3420. },
  3421. "400": {
  3422. "$ref": "#/responses/error"
  3423. }
  3424. }
  3425. }
  3426. },
  3427. "/repos/{owner}/{repo}/contents": {
  3428. "get": {
  3429. "produces": [
  3430. "application/json"
  3431. ],
  3432. "tags": [
  3433. "repository"
  3434. ],
  3435. "summary": "Gets the metadata of all the entries of the root dir",
  3436. "operationId": "repoGetContentsList",
  3437. "parameters": [
  3438. {
  3439. "type": "string",
  3440. "description": "owner of the repo",
  3441. "name": "owner",
  3442. "in": "path",
  3443. "required": true
  3444. },
  3445. {
  3446. "type": "string",
  3447. "description": "name of the repo",
  3448. "name": "repo",
  3449. "in": "path",
  3450. "required": true
  3451. },
  3452. {
  3453. "type": "string",
  3454. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  3455. "name": "ref",
  3456. "in": "query"
  3457. }
  3458. ],
  3459. "responses": {
  3460. "200": {
  3461. "$ref": "#/responses/ContentsListResponse"
  3462. },
  3463. "404": {
  3464. "$ref": "#/responses/notFound"
  3465. }
  3466. }
  3467. }
  3468. },
  3469. "/repos/{owner}/{repo}/contents/{filepath}": {
  3470. "get": {
  3471. "produces": [
  3472. "application/json"
  3473. ],
  3474. "tags": [
  3475. "repository"
  3476. ],
  3477. "summary": "Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir",
  3478. "operationId": "repoGetContents",
  3479. "parameters": [
  3480. {
  3481. "type": "string",
  3482. "description": "owner of the repo",
  3483. "name": "owner",
  3484. "in": "path",
  3485. "required": true
  3486. },
  3487. {
  3488. "type": "string",
  3489. "description": "name of the repo",
  3490. "name": "repo",
  3491. "in": "path",
  3492. "required": true
  3493. },
  3494. {
  3495. "type": "string",
  3496. "description": "path of the dir, file, symlink or submodule in the repo",
  3497. "name": "filepath",
  3498. "in": "path",
  3499. "required": true
  3500. },
  3501. {
  3502. "type": "string",
  3503. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  3504. "name": "ref",
  3505. "in": "query"
  3506. }
  3507. ],
  3508. "responses": {
  3509. "200": {
  3510. "$ref": "#/responses/ContentsResponse"
  3511. },
  3512. "404": {
  3513. "$ref": "#/responses/notFound"
  3514. }
  3515. }
  3516. },
  3517. "put": {
  3518. "consumes": [
  3519. "application/json"
  3520. ],
  3521. "produces": [
  3522. "application/json"
  3523. ],
  3524. "tags": [
  3525. "repository"
  3526. ],
  3527. "summary": "Update a file in a repository",
  3528. "operationId": "repoUpdateFile",
  3529. "parameters": [
  3530. {
  3531. "type": "string",
  3532. "description": "owner of the repo",
  3533. "name": "owner",
  3534. "in": "path",
  3535. "required": true
  3536. },
  3537. {
  3538. "type": "string",
  3539. "description": "name of the repo",
  3540. "name": "repo",
  3541. "in": "path",
  3542. "required": true
  3543. },
  3544. {
  3545. "type": "string",
  3546. "description": "path of the file to update",
  3547. "name": "filepath",
  3548. "in": "path",
  3549. "required": true
  3550. },
  3551. {
  3552. "name": "body",
  3553. "in": "body",
  3554. "required": true,
  3555. "schema": {
  3556. "$ref": "#/definitions/UpdateFileOptions"
  3557. }
  3558. }
  3559. ],
  3560. "responses": {
  3561. "200": {
  3562. "$ref": "#/responses/FileResponse"
  3563. },
  3564. "403": {
  3565. "$ref": "#/responses/error"
  3566. },
  3567. "404": {
  3568. "$ref": "#/responses/notFound"
  3569. },
  3570. "422": {
  3571. "$ref": "#/responses/error"
  3572. }
  3573. }
  3574. },
  3575. "post": {
  3576. "consumes": [
  3577. "application/json"
  3578. ],
  3579. "produces": [
  3580. "application/json"
  3581. ],
  3582. "tags": [
  3583. "repository"
  3584. ],
  3585. "summary": "Create a file in a repository",
  3586. "operationId": "repoCreateFile",
  3587. "parameters": [
  3588. {
  3589. "type": "string",
  3590. "description": "owner of the repo",
  3591. "name": "owner",
  3592. "in": "path",
  3593. "required": true
  3594. },
  3595. {
  3596. "type": "string",
  3597. "description": "name of the repo",
  3598. "name": "repo",
  3599. "in": "path",
  3600. "required": true
  3601. },
  3602. {
  3603. "type": "string",
  3604. "description": "path of the file to create",
  3605. "name": "filepath",
  3606. "in": "path",
  3607. "required": true
  3608. },
  3609. {
  3610. "name": "body",
  3611. "in": "body",
  3612. "required": true,
  3613. "schema": {
  3614. "$ref": "#/definitions/CreateFileOptions"
  3615. }
  3616. }
  3617. ],
  3618. "responses": {
  3619. "201": {
  3620. "$ref": "#/responses/FileResponse"
  3621. },
  3622. "403": {
  3623. "$ref": "#/responses/error"
  3624. },
  3625. "404": {
  3626. "$ref": "#/responses/notFound"
  3627. },
  3628. "422": {
  3629. "$ref": "#/responses/error"
  3630. }
  3631. }
  3632. },
  3633. "delete": {
  3634. "consumes": [
  3635. "application/json"
  3636. ],
  3637. "produces": [
  3638. "application/json"
  3639. ],
  3640. "tags": [
  3641. "repository"
  3642. ],
  3643. "summary": "Delete a file in a repository",
  3644. "operationId": "repoDeleteFile",
  3645. "parameters": [
  3646. {
  3647. "type": "string",
  3648. "description": "owner of the repo",
  3649. "name": "owner",
  3650. "in": "path",
  3651. "required": true
  3652. },
  3653. {
  3654. "type": "string",
  3655. "description": "name of the repo",
  3656. "name": "repo",
  3657. "in": "path",
  3658. "required": true
  3659. },
  3660. {
  3661. "type": "string",
  3662. "description": "path of the file to delete",
  3663. "name": "filepath",
  3664. "in": "path",
  3665. "required": true
  3666. },
  3667. {
  3668. "name": "body",
  3669. "in": "body",
  3670. "required": true,
  3671. "schema": {
  3672. "$ref": "#/definitions/DeleteFileOptions"
  3673. }
  3674. }
  3675. ],
  3676. "responses": {
  3677. "200": {
  3678. "$ref": "#/responses/FileDeleteResponse"
  3679. },
  3680. "400": {
  3681. "$ref": "#/responses/error"
  3682. },
  3683. "403": {
  3684. "$ref": "#/responses/error"
  3685. },
  3686. "404": {
  3687. "$ref": "#/responses/error"
  3688. }
  3689. }
  3690. }
  3691. },
  3692. "/repos/{owner}/{repo}/diffpatch": {
  3693. "post": {
  3694. "consumes": [
  3695. "application/json"
  3696. ],
  3697. "produces": [
  3698. "application/json"
  3699. ],
  3700. "tags": [
  3701. "repository"
  3702. ],
  3703. "summary": "Apply diff patch to repository",
  3704. "operationId": "repoApplyDiffPatch",
  3705. "parameters": [
  3706. {
  3707. "type": "string",
  3708. "description": "owner of the repo",
  3709. "name": "owner",
  3710. "in": "path",
  3711. "required": true
  3712. },
  3713. {
  3714. "type": "string",
  3715. "description": "name of the repo",
  3716. "name": "repo",
  3717. "in": "path",
  3718. "required": true
  3719. },
  3720. {
  3721. "name": "body",
  3722. "in": "body",
  3723. "required": true,
  3724. "schema": {
  3725. "$ref": "#/definitions/UpdateFileOptions"
  3726. }
  3727. }
  3728. ],
  3729. "responses": {
  3730. "200": {
  3731. "$ref": "#/responses/FileResponse"
  3732. }
  3733. }
  3734. }
  3735. },
  3736. "/repos/{owner}/{repo}/editorconfig/{filepath}": {
  3737. "get": {
  3738. "produces": [
  3739. "application/json"
  3740. ],
  3741. "tags": [
  3742. "repository"
  3743. ],
  3744. "summary": "Get the EditorConfig definitions of a file in a repository",
  3745. "operationId": "repoGetEditorConfig",
  3746. "parameters": [
  3747. {
  3748. "type": "string",
  3749. "description": "owner of the repo",
  3750. "name": "owner",
  3751. "in": "path",
  3752. "required": true
  3753. },
  3754. {
  3755. "type": "string",
  3756. "description": "name of the repo",
  3757. "name": "repo",
  3758. "in": "path",
  3759. "required": true
  3760. },
  3761. {
  3762. "type": "string",
  3763. "description": "filepath of file to get",
  3764. "name": "filepath",
  3765. "in": "path",
  3766. "required": true
  3767. },
  3768. {
  3769. "type": "string",
  3770. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  3771. "name": "ref",
  3772. "in": "query"
  3773. }
  3774. ],
  3775. "responses": {
  3776. "200": {
  3777. "description": "success"
  3778. },
  3779. "404": {
  3780. "$ref": "#/responses/notFound"
  3781. }
  3782. }
  3783. }
  3784. },
  3785. "/repos/{owner}/{repo}/forks": {
  3786. "get": {
  3787. "produces": [
  3788. "application/json"
  3789. ],
  3790. "tags": [
  3791. "repository"
  3792. ],
  3793. "summary": "List a repository's forks",
  3794. "operationId": "listForks",
  3795. "parameters": [
  3796. {
  3797. "type": "string",
  3798. "description": "owner of the repo",
  3799. "name": "owner",
  3800. "in": "path",
  3801. "required": true
  3802. },
  3803. {
  3804. "type": "string",
  3805. "description": "name of the repo",
  3806. "name": "repo",
  3807. "in": "path",
  3808. "required": true
  3809. },
  3810. {
  3811. "type": "integer",
  3812. "description": "page number of results to return (1-based)",
  3813. "name": "page",
  3814. "in": "query"
  3815. },
  3816. {
  3817. "type": "integer",
  3818. "description": "page size of results",
  3819. "name": "limit",
  3820. "in": "query"
  3821. }
  3822. ],
  3823. "responses": {
  3824. "200": {
  3825. "$ref": "#/responses/RepositoryList"
  3826. }
  3827. }
  3828. },
  3829. "post": {
  3830. "produces": [
  3831. "application/json"
  3832. ],
  3833. "tags": [
  3834. "repository"
  3835. ],
  3836. "summary": "Fork a repository",
  3837. "operationId": "createFork",
  3838. "parameters": [
  3839. {
  3840. "type": "string",
  3841. "description": "owner of the repo to fork",
  3842. "name": "owner",
  3843. "in": "path",
  3844. "required": true
  3845. },
  3846. {
  3847. "type": "string",
  3848. "description": "name of the repo to fork",
  3849. "name": "repo",
  3850. "in": "path",
  3851. "required": true
  3852. },
  3853. {
  3854. "name": "body",
  3855. "in": "body",
  3856. "schema": {
  3857. "$ref": "#/definitions/CreateForkOption"
  3858. }
  3859. }
  3860. ],
  3861. "responses": {
  3862. "202": {
  3863. "$ref": "#/responses/Repository"
  3864. },
  3865. "403": {
  3866. "$ref": "#/responses/forbidden"
  3867. },
  3868. "409": {
  3869. "description": "The repository with the same name already exists."
  3870. },
  3871. "422": {
  3872. "$ref": "#/responses/validationError"
  3873. }
  3874. }
  3875. }
  3876. },
  3877. "/repos/{owner}/{repo}/git/blobs/{sha}": {
  3878. "get": {
  3879. "produces": [
  3880. "application/json"
  3881. ],
  3882. "tags": [
  3883. "repository"
  3884. ],
  3885. "summary": "Gets the blob of a repository.",
  3886. "operationId": "GetBlob",
  3887. "parameters": [
  3888. {
  3889. "type": "string",
  3890. "description": "owner of the repo",
  3891. "name": "owner",
  3892. "in": "path",
  3893. "required": true
  3894. },
  3895. {
  3896. "type": "string",
  3897. "description": "name of the repo",
  3898. "name": "repo",
  3899. "in": "path",
  3900. "required": true
  3901. },
  3902. {
  3903. "type": "string",
  3904. "description": "sha of the commit",
  3905. "name": "sha",
  3906. "in": "path",
  3907. "required": true
  3908. }
  3909. ],
  3910. "responses": {
  3911. "200": {
  3912. "$ref": "#/responses/GitBlobResponse"
  3913. },
  3914. "400": {
  3915. "$ref": "#/responses/error"
  3916. }
  3917. }
  3918. }
  3919. },
  3920. "/repos/{owner}/{repo}/git/commits/{sha}": {
  3921. "get": {
  3922. "produces": [
  3923. "application/json"
  3924. ],
  3925. "tags": [
  3926. "repository"
  3927. ],
  3928. "summary": "Get a single commit from a repository",
  3929. "operationId": "repoGetSingleCommit",
  3930. "parameters": [
  3931. {
  3932. "type": "string",
  3933. "description": "owner of the repo",
  3934. "name": "owner",
  3935. "in": "path",
  3936. "required": true
  3937. },
  3938. {
  3939. "type": "string",
  3940. "description": "name of the repo",
  3941. "name": "repo",
  3942. "in": "path",
  3943. "required": true
  3944. },
  3945. {
  3946. "type": "string",
  3947. "description": "a git ref or commit sha",
  3948. "name": "sha",
  3949. "in": "path",
  3950. "required": true
  3951. }
  3952. ],
  3953. "responses": {
  3954. "200": {
  3955. "$ref": "#/responses/Commit"
  3956. },
  3957. "404": {
  3958. "$ref": "#/responses/notFound"
  3959. },
  3960. "422": {
  3961. "$ref": "#/responses/validationError"
  3962. }
  3963. }
  3964. }
  3965. },
  3966. "/repos/{owner}/{repo}/git/commits/{sha}.{diffType}": {
  3967. "get": {
  3968. "produces": [
  3969. "text/plain"
  3970. ],
  3971. "tags": [
  3972. "repository"
  3973. ],
  3974. "summary": "Get a commit's diff or patch",
  3975. "operationId": "repoDownloadCommitDiffOrPatch",
  3976. "parameters": [
  3977. {
  3978. "type": "string",
  3979. "description": "owner of the repo",
  3980. "name": "owner",
  3981. "in": "path",
  3982. "required": true
  3983. },
  3984. {
  3985. "type": "string",
  3986. "description": "name of the repo",
  3987. "name": "repo",
  3988. "in": "path",
  3989. "required": true
  3990. },
  3991. {
  3992. "type": "string",
  3993. "description": "SHA of the commit to get",
  3994. "name": "sha",
  3995. "in": "path",
  3996. "required": true
  3997. },
  3998. {
  3999. "enum": [
  4000. "diff",
  4001. "patch"
  4002. ],
  4003. "type": "string",
  4004. "description": "whether the output is diff or patch",
  4005. "name": "diffType",
  4006. "in": "path",
  4007. "required": true
  4008. }
  4009. ],
  4010. "responses": {
  4011. "200": {
  4012. "$ref": "#/responses/string"
  4013. },
  4014. "404": {
  4015. "$ref": "#/responses/notFound"
  4016. }
  4017. }
  4018. }
  4019. },
  4020. "/repos/{owner}/{repo}/git/notes/{sha}": {
  4021. "get": {
  4022. "produces": [
  4023. "application/json"
  4024. ],
  4025. "tags": [
  4026. "repository"
  4027. ],
  4028. "summary": "Get a note corresponding to a single commit from a repository",
  4029. "operationId": "repoGetNote",
  4030. "parameters": [
  4031. {
  4032. "type": "string",
  4033. "description": "owner of the repo",
  4034. "name": "owner",
  4035. "in": "path",
  4036. "required": true
  4037. },
  4038. {
  4039. "type": "string",
  4040. "description": "name of the repo",
  4041. "name": "repo",
  4042. "in": "path",
  4043. "required": true
  4044. },
  4045. {
  4046. "type": "string",
  4047. "description": "a git ref or commit sha",
  4048. "name": "sha",
  4049. "in": "path",
  4050. "required": true
  4051. }
  4052. ],
  4053. "responses": {
  4054. "200": {
  4055. "$ref": "#/responses/Note"
  4056. },
  4057. "404": {
  4058. "$ref": "#/responses/notFound"
  4059. },
  4060. "422": {
  4061. "$ref": "#/responses/validationError"
  4062. }
  4063. }
  4064. }
  4065. },
  4066. "/repos/{owner}/{repo}/git/refs": {
  4067. "get": {
  4068. "produces": [
  4069. "application/json"
  4070. ],
  4071. "tags": [
  4072. "repository"
  4073. ],
  4074. "summary": "Get specified ref or filtered repository's refs",
  4075. "operationId": "repoListAllGitRefs",
  4076. "parameters": [
  4077. {
  4078. "type": "string",
  4079. "description": "owner of the repo",
  4080. "name": "owner",
  4081. "in": "path",
  4082. "required": true
  4083. },
  4084. {
  4085. "type": "string",
  4086. "description": "name of the repo",
  4087. "name": "repo",
  4088. "in": "path",
  4089. "required": true
  4090. }
  4091. ],
  4092. "responses": {
  4093. "200": {
  4094. "$ref": "#/responses/ReferenceList"
  4095. },
  4096. "404": {
  4097. "$ref": "#/responses/notFound"
  4098. }
  4099. }
  4100. }
  4101. },
  4102. "/repos/{owner}/{repo}/git/refs/{ref}": {
  4103. "get": {
  4104. "produces": [
  4105. "application/json"
  4106. ],
  4107. "tags": [
  4108. "repository"
  4109. ],
  4110. "summary": "Get specified ref or filtered repository's refs",
  4111. "operationId": "repoListGitRefs",
  4112. "parameters": [
  4113. {
  4114. "type": "string",
  4115. "description": "owner of the repo",
  4116. "name": "owner",
  4117. "in": "path",
  4118. "required": true
  4119. },
  4120. {
  4121. "type": "string",
  4122. "description": "name of the repo",
  4123. "name": "repo",
  4124. "in": "path",
  4125. "required": true
  4126. },
  4127. {
  4128. "type": "string",
  4129. "description": "part or full name of the ref",
  4130. "name": "ref",
  4131. "in": "path",
  4132. "required": true
  4133. }
  4134. ],
  4135. "responses": {
  4136. "200": {
  4137. "$ref": "#/responses/ReferenceList"
  4138. },
  4139. "404": {
  4140. "$ref": "#/responses/notFound"
  4141. }
  4142. }
  4143. }
  4144. },
  4145. "/repos/{owner}/{repo}/git/tags/{sha}": {
  4146. "get": {
  4147. "produces": [
  4148. "application/json"
  4149. ],
  4150. "tags": [
  4151. "repository"
  4152. ],
  4153. "summary": "Gets the tag object of an annotated tag (not lightweight tags)",
  4154. "operationId": "GetAnnotatedTag",
  4155. "parameters": [
  4156. {
  4157. "type": "string",
  4158. "description": "owner of the repo",
  4159. "name": "owner",
  4160. "in": "path",
  4161. "required": true
  4162. },
  4163. {
  4164. "type": "string",
  4165. "description": "name of the repo",
  4166. "name": "repo",
  4167. "in": "path",
  4168. "required": true
  4169. },
  4170. {
  4171. "type": "string",
  4172. "description": "sha of the tag. The Git tags API only supports annotated tag objects, not lightweight tags.",
  4173. "name": "sha",
  4174. "in": "path",
  4175. "required": true
  4176. }
  4177. ],
  4178. "responses": {
  4179. "200": {
  4180. "$ref": "#/responses/AnnotatedTag"
  4181. },
  4182. "400": {
  4183. "$ref": "#/responses/error"
  4184. }
  4185. }
  4186. }
  4187. },
  4188. "/repos/{owner}/{repo}/git/trees/{sha}": {
  4189. "get": {
  4190. "produces": [
  4191. "application/json"
  4192. ],
  4193. "tags": [
  4194. "repository"
  4195. ],
  4196. "summary": "Gets the tree of a repository.",
  4197. "operationId": "GetTree",
  4198. "parameters": [
  4199. {
  4200. "type": "string",
  4201. "description": "owner of the repo",
  4202. "name": "owner",
  4203. "in": "path",
  4204. "required": true
  4205. },
  4206. {
  4207. "type": "string",
  4208. "description": "name of the repo",
  4209. "name": "repo",
  4210. "in": "path",
  4211. "required": true
  4212. },
  4213. {
  4214. "type": "string",
  4215. "description": "sha of the commit",
  4216. "name": "sha",
  4217. "in": "path",
  4218. "required": true
  4219. },
  4220. {
  4221. "type": "boolean",
  4222. "description": "show all directories and files",
  4223. "name": "recursive",
  4224. "in": "query"
  4225. },
  4226. {
  4227. "type": "integer",
  4228. "description": "page number; the 'truncated' field in the response will be true if there are still more items after this page, false if the last page",
  4229. "name": "page",
  4230. "in": "query"
  4231. },
  4232. {
  4233. "type": "integer",
  4234. "description": "number of items per page",
  4235. "name": "per_page",
  4236. "in": "query"
  4237. }
  4238. ],
  4239. "responses": {
  4240. "200": {
  4241. "$ref": "#/responses/GitTreeResponse"
  4242. },
  4243. "400": {
  4244. "$ref": "#/responses/error"
  4245. }
  4246. }
  4247. }
  4248. },
  4249. "/repos/{owner}/{repo}/hooks": {
  4250. "get": {
  4251. "produces": [
  4252. "application/json"
  4253. ],
  4254. "tags": [
  4255. "repository"
  4256. ],
  4257. "summary": "List the hooks in a repository",
  4258. "operationId": "repoListHooks",
  4259. "parameters": [
  4260. {
  4261. "type": "string",
  4262. "description": "owner of the repo",
  4263. "name": "owner",
  4264. "in": "path",
  4265. "required": true
  4266. },
  4267. {
  4268. "type": "string",
  4269. "description": "name of the repo",
  4270. "name": "repo",
  4271. "in": "path",
  4272. "required": true
  4273. },
  4274. {
  4275. "type": "integer",
  4276. "description": "page number of results to return (1-based)",
  4277. "name": "page",
  4278. "in": "query"
  4279. },
  4280. {
  4281. "type": "integer",
  4282. "description": "page size of results",
  4283. "name": "limit",
  4284. "in": "query"
  4285. }
  4286. ],
  4287. "responses": {
  4288. "200": {
  4289. "$ref": "#/responses/HookList"
  4290. }
  4291. }
  4292. },
  4293. "post": {
  4294. "consumes": [
  4295. "application/json"
  4296. ],
  4297. "produces": [
  4298. "application/json"
  4299. ],
  4300. "tags": [
  4301. "repository"
  4302. ],
  4303. "summary": "Create a hook",
  4304. "operationId": "repoCreateHook",
  4305. "parameters": [
  4306. {
  4307. "type": "string",
  4308. "description": "owner of the repo",
  4309. "name": "owner",
  4310. "in": "path",
  4311. "required": true
  4312. },
  4313. {
  4314. "type": "string",
  4315. "description": "name of the repo",
  4316. "name": "repo",
  4317. "in": "path",
  4318. "required": true
  4319. },
  4320. {
  4321. "name": "body",
  4322. "in": "body",
  4323. "schema": {
  4324. "$ref": "#/definitions/CreateHookOption"
  4325. }
  4326. }
  4327. ],
  4328. "responses": {
  4329. "201": {
  4330. "$ref": "#/responses/Hook"
  4331. }
  4332. }
  4333. }
  4334. },
  4335. "/repos/{owner}/{repo}/hooks/git": {
  4336. "get": {
  4337. "produces": [
  4338. "application/json"
  4339. ],
  4340. "tags": [
  4341. "repository"
  4342. ],
  4343. "summary": "List the Git hooks in a repository",
  4344. "operationId": "repoListGitHooks",
  4345. "parameters": [
  4346. {
  4347. "type": "string",
  4348. "description": "owner of the repo",
  4349. "name": "owner",
  4350. "in": "path",
  4351. "required": true
  4352. },
  4353. {
  4354. "type": "string",
  4355. "description": "name of the repo",
  4356. "name": "repo",
  4357. "in": "path",
  4358. "required": true
  4359. }
  4360. ],
  4361. "responses": {
  4362. "200": {
  4363. "$ref": "#/responses/GitHookList"
  4364. }
  4365. }
  4366. }
  4367. },
  4368. "/repos/{owner}/{repo}/hooks/git/{id}": {
  4369. "get": {
  4370. "produces": [
  4371. "application/json"
  4372. ],
  4373. "tags": [
  4374. "repository"
  4375. ],
  4376. "summary": "Get a Git hook",
  4377. "operationId": "repoGetGitHook",
  4378. "parameters": [
  4379. {
  4380. "type": "string",
  4381. "description": "owner of the repo",
  4382. "name": "owner",
  4383. "in": "path",
  4384. "required": true
  4385. },
  4386. {
  4387. "type": "string",
  4388. "description": "name of the repo",
  4389. "name": "repo",
  4390. "in": "path",
  4391. "required": true
  4392. },
  4393. {
  4394. "type": "string",
  4395. "description": "id of the hook to get",
  4396. "name": "id",
  4397. "in": "path",
  4398. "required": true
  4399. }
  4400. ],
  4401. "responses": {
  4402. "200": {
  4403. "$ref": "#/responses/GitHook"
  4404. },
  4405. "404": {
  4406. "$ref": "#/responses/notFound"
  4407. }
  4408. }
  4409. },
  4410. "delete": {
  4411. "produces": [
  4412. "application/json"
  4413. ],
  4414. "tags": [
  4415. "repository"
  4416. ],
  4417. "summary": "Delete a Git hook in a repository",
  4418. "operationId": "repoDeleteGitHook",
  4419. "parameters": [
  4420. {
  4421. "type": "string",
  4422. "description": "owner of the repo",
  4423. "name": "owner",
  4424. "in": "path",
  4425. "required": true
  4426. },
  4427. {
  4428. "type": "string",
  4429. "description": "name of the repo",
  4430. "name": "repo",
  4431. "in": "path",
  4432. "required": true
  4433. },
  4434. {
  4435. "type": "string",
  4436. "description": "id of the hook to get",
  4437. "name": "id",
  4438. "in": "path",
  4439. "required": true
  4440. }
  4441. ],
  4442. "responses": {
  4443. "204": {
  4444. "$ref": "#/responses/empty"
  4445. },
  4446. "404": {
  4447. "$ref": "#/responses/notFound"
  4448. }
  4449. }
  4450. },
  4451. "patch": {
  4452. "produces": [
  4453. "application/json"
  4454. ],
  4455. "tags": [
  4456. "repository"
  4457. ],
  4458. "summary": "Edit a Git hook in a repository",
  4459. "operationId": "repoEditGitHook",
  4460. "parameters": [
  4461. {
  4462. "type": "string",
  4463. "description": "owner of the repo",
  4464. "name": "owner",
  4465. "in": "path",
  4466. "required": true
  4467. },
  4468. {
  4469. "type": "string",
  4470. "description": "name of the repo",
  4471. "name": "repo",
  4472. "in": "path",
  4473. "required": true
  4474. },
  4475. {
  4476. "type": "string",
  4477. "description": "id of the hook to get",
  4478. "name": "id",
  4479. "in": "path",
  4480. "required": true
  4481. },
  4482. {
  4483. "name": "body",
  4484. "in": "body",
  4485. "schema": {
  4486. "$ref": "#/definitions/EditGitHookOption"
  4487. }
  4488. }
  4489. ],
  4490. "responses": {
  4491. "200": {
  4492. "$ref": "#/responses/GitHook"
  4493. },
  4494. "404": {
  4495. "$ref": "#/responses/notFound"
  4496. }
  4497. }
  4498. }
  4499. },
  4500. "/repos/{owner}/{repo}/hooks/{id}": {
  4501. "get": {
  4502. "produces": [
  4503. "application/json"
  4504. ],
  4505. "tags": [
  4506. "repository"
  4507. ],
  4508. "summary": "Get a hook",
  4509. "operationId": "repoGetHook",
  4510. "parameters": [
  4511. {
  4512. "type": "string",
  4513. "description": "owner of the repo",
  4514. "name": "owner",
  4515. "in": "path",
  4516. "required": true
  4517. },
  4518. {
  4519. "type": "string",
  4520. "description": "name of the repo",
  4521. "name": "repo",
  4522. "in": "path",
  4523. "required": true
  4524. },
  4525. {
  4526. "type": "integer",
  4527. "format": "int64",
  4528. "description": "id of the hook to get",
  4529. "name": "id",
  4530. "in": "path",
  4531. "required": true
  4532. }
  4533. ],
  4534. "responses": {
  4535. "200": {
  4536. "$ref": "#/responses/Hook"
  4537. },
  4538. "404": {
  4539. "$ref": "#/responses/notFound"
  4540. }
  4541. }
  4542. },
  4543. "delete": {
  4544. "produces": [
  4545. "application/json"
  4546. ],
  4547. "tags": [
  4548. "repository"
  4549. ],
  4550. "summary": "Delete a hook in a repository",
  4551. "operationId": "repoDeleteHook",
  4552. "parameters": [
  4553. {
  4554. "type": "string",
  4555. "description": "owner of the repo",
  4556. "name": "owner",
  4557. "in": "path",
  4558. "required": true
  4559. },
  4560. {
  4561. "type": "string",
  4562. "description": "name of the repo",
  4563. "name": "repo",
  4564. "in": "path",
  4565. "required": true
  4566. },
  4567. {
  4568. "type": "integer",
  4569. "format": "int64",
  4570. "description": "id of the hook to delete",
  4571. "name": "id",
  4572. "in": "path",
  4573. "required": true
  4574. }
  4575. ],
  4576. "responses": {
  4577. "204": {
  4578. "$ref": "#/responses/empty"
  4579. },
  4580. "404": {
  4581. "$ref": "#/responses/notFound"
  4582. }
  4583. }
  4584. },
  4585. "patch": {
  4586. "produces": [
  4587. "application/json"
  4588. ],
  4589. "tags": [
  4590. "repository"
  4591. ],
  4592. "summary": "Edit a hook in a repository",
  4593. "operationId": "repoEditHook",
  4594. "parameters": [
  4595. {
  4596. "type": "string",
  4597. "description": "owner of the repo",
  4598. "name": "owner",
  4599. "in": "path",
  4600. "required": true
  4601. },
  4602. {
  4603. "type": "string",
  4604. "description": "name of the repo",
  4605. "name": "repo",
  4606. "in": "path",
  4607. "required": true
  4608. },
  4609. {
  4610. "type": "integer",
  4611. "format": "int64",
  4612. "description": "index of the hook",
  4613. "name": "id",
  4614. "in": "path",
  4615. "required": true
  4616. },
  4617. {
  4618. "name": "body",
  4619. "in": "body",
  4620. "schema": {
  4621. "$ref": "#/definitions/EditHookOption"
  4622. }
  4623. }
  4624. ],
  4625. "responses": {
  4626. "200": {
  4627. "$ref": "#/responses/Hook"
  4628. }
  4629. }
  4630. }
  4631. },
  4632. "/repos/{owner}/{repo}/hooks/{id}/tests": {
  4633. "post": {
  4634. "produces": [
  4635. "application/json"
  4636. ],
  4637. "tags": [
  4638. "repository"
  4639. ],
  4640. "summary": "Test a push webhook",
  4641. "operationId": "repoTestHook",
  4642. "parameters": [
  4643. {
  4644. "type": "string",
  4645. "description": "owner of the repo",
  4646. "name": "owner",
  4647. "in": "path",
  4648. "required": true
  4649. },
  4650. {
  4651. "type": "string",
  4652. "description": "name of the repo",
  4653. "name": "repo",
  4654. "in": "path",
  4655. "required": true
  4656. },
  4657. {
  4658. "type": "integer",
  4659. "format": "int64",
  4660. "description": "id of the hook to test",
  4661. "name": "id",
  4662. "in": "path",
  4663. "required": true
  4664. },
  4665. {
  4666. "type": "string",
  4667. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  4668. "name": "ref",
  4669. "in": "query"
  4670. }
  4671. ],
  4672. "responses": {
  4673. "204": {
  4674. "$ref": "#/responses/empty"
  4675. }
  4676. }
  4677. }
  4678. },
  4679. "/repos/{owner}/{repo}/issue_templates": {
  4680. "get": {
  4681. "produces": [
  4682. "application/json"
  4683. ],
  4684. "tags": [
  4685. "repository"
  4686. ],
  4687. "summary": "Get available issue templates for a repository",
  4688. "operationId": "repoGetIssueTemplates",
  4689. "parameters": [
  4690. {
  4691. "type": "string",
  4692. "description": "owner of the repo",
  4693. "name": "owner",
  4694. "in": "path",
  4695. "required": true
  4696. },
  4697. {
  4698. "type": "string",
  4699. "description": "name of the repo",
  4700. "name": "repo",
  4701. "in": "path",
  4702. "required": true
  4703. }
  4704. ],
  4705. "responses": {
  4706. "200": {
  4707. "$ref": "#/responses/IssueTemplates"
  4708. }
  4709. }
  4710. }
  4711. },
  4712. "/repos/{owner}/{repo}/issues": {
  4713. "get": {
  4714. "produces": [
  4715. "application/json"
  4716. ],
  4717. "tags": [
  4718. "issue"
  4719. ],
  4720. "summary": "List a repository's issues",
  4721. "operationId": "issueListIssues",
  4722. "parameters": [
  4723. {
  4724. "type": "string",
  4725. "description": "owner of the repo",
  4726. "name": "owner",
  4727. "in": "path",
  4728. "required": true
  4729. },
  4730. {
  4731. "type": "string",
  4732. "description": "name of the repo",
  4733. "name": "repo",
  4734. "in": "path",
  4735. "required": true
  4736. },
  4737. {
  4738. "enum": [
  4739. "closed",
  4740. "open",
  4741. "all"
  4742. ],
  4743. "type": "string",
  4744. "description": "whether issue is open or closed",
  4745. "name": "state",
  4746. "in": "query"
  4747. },
  4748. {
  4749. "type": "string",
  4750. "description": "comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded",
  4751. "name": "labels",
  4752. "in": "query"
  4753. },
  4754. {
  4755. "type": "string",
  4756. "description": "search string",
  4757. "name": "q",
  4758. "in": "query"
  4759. },
  4760. {
  4761. "enum": [
  4762. "issues",
  4763. "pulls"
  4764. ],
  4765. "type": "string",
  4766. "description": "filter by type (issues / pulls) if set",
  4767. "name": "type",
  4768. "in": "query"
  4769. },
  4770. {
  4771. "type": "string",
  4772. "description": "comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded",
  4773. "name": "milestones",
  4774. "in": "query"
  4775. },
  4776. {
  4777. "type": "string",
  4778. "format": "date-time",
  4779. "description": "Only show items updated after the given time. This is a timestamp in RFC 3339 format",
  4780. "name": "since",
  4781. "in": "query"
  4782. },
  4783. {
  4784. "type": "string",
  4785. "format": "date-time",
  4786. "description": "Only show items updated before the given time. This is a timestamp in RFC 3339 format",
  4787. "name": "before",
  4788. "in": "query"
  4789. },
  4790. {
  4791. "type": "string",
  4792. "description": "Only show items which were created by the the given user",
  4793. "name": "created_by",
  4794. "in": "query"
  4795. },
  4796. {
  4797. "type": "string",
  4798. "description": "Only show items for which the given user is assigned",
  4799. "name": "assigned_by",
  4800. "in": "query"
  4801. },
  4802. {
  4803. "type": "string",
  4804. "description": "Only show items in which the given user was mentioned",
  4805. "name": "mentioned_by",
  4806. "in": "query"
  4807. },
  4808. {
  4809. "type": "integer",
  4810. "description": "page number of results to return (1-based)",
  4811. "name": "page",
  4812. "in": "query"
  4813. },
  4814. {
  4815. "type": "integer",
  4816. "description": "page size of results",
  4817. "name": "limit",
  4818. "in": "query"
  4819. }
  4820. ],
  4821. "responses": {
  4822. "200": {
  4823. "$ref": "#/responses/IssueList"
  4824. }
  4825. }
  4826. },
  4827. "post": {
  4828. "consumes": [
  4829. "application/json"
  4830. ],
  4831. "produces": [
  4832. "application/json"
  4833. ],
  4834. "tags": [
  4835. "issue"
  4836. ],
  4837. "summary": "Create an issue. If using deadline only the date will be taken into account, and time of day ignored.",
  4838. "operationId": "issueCreateIssue",
  4839. "parameters": [
  4840. {
  4841. "type": "string",
  4842. "description": "owner of the repo",
  4843. "name": "owner",
  4844. "in": "path",
  4845. "required": true
  4846. },
  4847. {
  4848. "type": "string",
  4849. "description": "name of the repo",
  4850. "name": "repo",
  4851. "in": "path",
  4852. "required": true
  4853. },
  4854. {
  4855. "name": "body",
  4856. "in": "body",
  4857. "schema": {
  4858. "$ref": "#/definitions/CreateIssueOption"
  4859. }
  4860. }
  4861. ],
  4862. "responses": {
  4863. "201": {
  4864. "$ref": "#/responses/Issue"
  4865. },
  4866. "403": {
  4867. "$ref": "#/responses/forbidden"
  4868. },
  4869. "412": {
  4870. "$ref": "#/responses/error"
  4871. },
  4872. "422": {
  4873. "$ref": "#/responses/validationError"
  4874. }
  4875. }
  4876. }
  4877. },
  4878. "/repos/{owner}/{repo}/issues/comments": {
  4879. "get": {
  4880. "produces": [
  4881. "application/json"
  4882. ],
  4883. "tags": [
  4884. "issue"
  4885. ],
  4886. "summary": "List all comments in a repository",
  4887. "operationId": "issueGetRepoComments",
  4888. "parameters": [
  4889. {
  4890. "type": "string",
  4891. "description": "owner of the repo",
  4892. "name": "owner",
  4893. "in": "path",
  4894. "required": true
  4895. },
  4896. {
  4897. "type": "string",
  4898. "description": "name of the repo",
  4899. "name": "repo",
  4900. "in": "path",
  4901. "required": true
  4902. },
  4903. {
  4904. "type": "string",
  4905. "format": "date-time",
  4906. "description": "if provided, only comments updated since the provided time are returned.",
  4907. "name": "since",
  4908. "in": "query"
  4909. },
  4910. {
  4911. "type": "string",
  4912. "format": "date-time",
  4913. "description": "if provided, only comments updated before the provided time are returned.",
  4914. "name": "before",
  4915. "in": "query"
  4916. },
  4917. {
  4918. "type": "integer",
  4919. "description": "page number of results to return (1-based)",
  4920. "name": "page",
  4921. "in": "query"
  4922. },
  4923. {
  4924. "type": "integer",
  4925. "description": "page size of results",
  4926. "name": "limit",
  4927. "in": "query"
  4928. }
  4929. ],
  4930. "responses": {
  4931. "200": {
  4932. "$ref": "#/responses/CommentList"
  4933. }
  4934. }
  4935. }
  4936. },
  4937. "/repos/{owner}/{repo}/issues/comments/{id}": {
  4938. "get": {
  4939. "consumes": [
  4940. "application/json"
  4941. ],
  4942. "produces": [
  4943. "application/json"
  4944. ],
  4945. "tags": [
  4946. "issue"
  4947. ],
  4948. "summary": "Get a comment",
  4949. "operationId": "issueGetComment",
  4950. "parameters": [
  4951. {
  4952. "type": "string",
  4953. "description": "owner of the repo",
  4954. "name": "owner",
  4955. "in": "path",
  4956. "required": true
  4957. },
  4958. {
  4959. "type": "string",
  4960. "description": "name of the repo",
  4961. "name": "repo",
  4962. "in": "path",
  4963. "required": true
  4964. },
  4965. {
  4966. "type": "integer",
  4967. "format": "int64",
  4968. "description": "id of the comment",
  4969. "name": "id",
  4970. "in": "path",
  4971. "required": true
  4972. }
  4973. ],
  4974. "responses": {
  4975. "200": {
  4976. "$ref": "#/responses/Comment"
  4977. },
  4978. "204": {
  4979. "$ref": "#/responses/empty"
  4980. },
  4981. "403": {
  4982. "$ref": "#/responses/forbidden"
  4983. },
  4984. "404": {
  4985. "$ref": "#/responses/notFound"
  4986. }
  4987. }
  4988. },
  4989. "delete": {
  4990. "tags": [
  4991. "issue"
  4992. ],
  4993. "summary": "Delete a comment",
  4994. "operationId": "issueDeleteComment",
  4995. "parameters": [
  4996. {
  4997. "type": "string",
  4998. "description": "owner of the repo",
  4999. "name": "owner",
  5000. "in": "path",
  5001. "required": true
  5002. },
  5003. {
  5004. "type": "string",
  5005. "description": "name of the repo",
  5006. "name": "repo",
  5007. "in": "path",
  5008. "required": true
  5009. },
  5010. {
  5011. "type": "integer",
  5012. "format": "int64",
  5013. "description": "id of comment to delete",
  5014. "name": "id",
  5015. "in": "path",
  5016. "required": true
  5017. }
  5018. ],
  5019. "responses": {
  5020. "204": {
  5021. "$ref": "#/responses/empty"
  5022. },
  5023. "403": {
  5024. "$ref": "#/responses/forbidden"
  5025. },
  5026. "404": {
  5027. "$ref": "#/responses/notFound"
  5028. }
  5029. }
  5030. },
  5031. "patch": {
  5032. "consumes": [
  5033. "application/json"
  5034. ],
  5035. "produces": [
  5036. "application/json"
  5037. ],
  5038. "tags": [
  5039. "issue"
  5040. ],
  5041. "summary": "Edit a comment",
  5042. "operationId": "issueEditComment",
  5043. "parameters": [
  5044. {
  5045. "type": "string",
  5046. "description": "owner of the repo",
  5047. "name": "owner",
  5048. "in": "path",
  5049. "required": true
  5050. },
  5051. {
  5052. "type": "string",
  5053. "description": "name of the repo",
  5054. "name": "repo",
  5055. "in": "path",
  5056. "required": true
  5057. },
  5058. {
  5059. "type": "integer",
  5060. "format": "int64",
  5061. "description": "id of the comment to edit",
  5062. "name": "id",
  5063. "in": "path",
  5064. "required": true
  5065. },
  5066. {
  5067. "name": "body",
  5068. "in": "body",
  5069. "schema": {
  5070. "$ref": "#/definitions/EditIssueCommentOption"
  5071. }
  5072. }
  5073. ],
  5074. "responses": {
  5075. "200": {
  5076. "$ref": "#/responses/Comment"
  5077. },
  5078. "204": {
  5079. "$ref": "#/responses/empty"
  5080. },
  5081. "403": {
  5082. "$ref": "#/responses/forbidden"
  5083. },
  5084. "404": {
  5085. "$ref": "#/responses/notFound"
  5086. }
  5087. }
  5088. }
  5089. },
  5090. "/repos/{owner}/{repo}/issues/comments/{id}/reactions": {
  5091. "get": {
  5092. "consumes": [
  5093. "application/json"
  5094. ],
  5095. "produces": [
  5096. "application/json"
  5097. ],
  5098. "tags": [
  5099. "issue"
  5100. ],
  5101. "summary": "Get a list of reactions from a comment of an issue",
  5102. "operationId": "issueGetCommentReactions",
  5103. "parameters": [
  5104. {
  5105. "type": "string",
  5106. "description": "owner of the repo",
  5107. "name": "owner",
  5108. "in": "path",
  5109. "required": true
  5110. },
  5111. {
  5112. "type": "string",
  5113. "description": "name of the repo",
  5114. "name": "repo",
  5115. "in": "path",
  5116. "required": true
  5117. },
  5118. {
  5119. "type": "integer",
  5120. "format": "int64",
  5121. "description": "id of the comment to edit",
  5122. "name": "id",
  5123. "in": "path",
  5124. "required": true
  5125. }
  5126. ],
  5127. "responses": {
  5128. "200": {
  5129. "$ref": "#/responses/ReactionList"
  5130. },
  5131. "403": {
  5132. "$ref": "#/responses/forbidden"
  5133. }
  5134. }
  5135. },
  5136. "post": {
  5137. "consumes": [
  5138. "application/json"
  5139. ],
  5140. "produces": [
  5141. "application/json"
  5142. ],
  5143. "tags": [
  5144. "issue"
  5145. ],
  5146. "summary": "Add a reaction to a comment of an issue",
  5147. "operationId": "issuePostCommentReaction",
  5148. "parameters": [
  5149. {
  5150. "type": "string",
  5151. "description": "owner of the repo",
  5152. "name": "owner",
  5153. "in": "path",
  5154. "required": true
  5155. },
  5156. {
  5157. "type": "string",
  5158. "description": "name of the repo",
  5159. "name": "repo",
  5160. "in": "path",
  5161. "required": true
  5162. },
  5163. {
  5164. "type": "integer",
  5165. "format": "int64",
  5166. "description": "id of the comment to edit",
  5167. "name": "id",
  5168. "in": "path",
  5169. "required": true
  5170. },
  5171. {
  5172. "name": "content",
  5173. "in": "body",
  5174. "schema": {
  5175. "$ref": "#/definitions/EditReactionOption"
  5176. }
  5177. }
  5178. ],
  5179. "responses": {
  5180. "200": {
  5181. "$ref": "#/responses/Reaction"
  5182. },
  5183. "201": {
  5184. "$ref": "#/responses/Reaction"
  5185. },
  5186. "403": {
  5187. "$ref": "#/responses/forbidden"
  5188. }
  5189. }
  5190. },
  5191. "delete": {
  5192. "consumes": [
  5193. "application/json"
  5194. ],
  5195. "produces": [
  5196. "application/json"
  5197. ],
  5198. "tags": [
  5199. "issue"
  5200. ],
  5201. "summary": "Remove a reaction from a comment of an issue",
  5202. "operationId": "issueDeleteCommentReaction",
  5203. "parameters": [
  5204. {
  5205. "type": "string",
  5206. "description": "owner of the repo",
  5207. "name": "owner",
  5208. "in": "path",
  5209. "required": true
  5210. },
  5211. {
  5212. "type": "string",
  5213. "description": "name of the repo",
  5214. "name": "repo",
  5215. "in": "path",
  5216. "required": true
  5217. },
  5218. {
  5219. "type": "integer",
  5220. "format": "int64",
  5221. "description": "id of the comment to edit",
  5222. "name": "id",
  5223. "in": "path",
  5224. "required": true
  5225. },
  5226. {
  5227. "name": "content",
  5228. "in": "body",
  5229. "schema": {
  5230. "$ref": "#/definitions/EditReactionOption"
  5231. }
  5232. }
  5233. ],
  5234. "responses": {
  5235. "200": {
  5236. "$ref": "#/responses/empty"
  5237. },
  5238. "403": {
  5239. "$ref": "#/responses/forbidden"
  5240. }
  5241. }
  5242. }
  5243. },
  5244. "/repos/{owner}/{repo}/issues/{index}": {
  5245. "get": {
  5246. "produces": [
  5247. "application/json"
  5248. ],
  5249. "tags": [
  5250. "issue"
  5251. ],
  5252. "summary": "Get an issue",
  5253. "operationId": "issueGetIssue",
  5254. "parameters": [
  5255. {
  5256. "type": "string",
  5257. "description": "owner of the repo",
  5258. "name": "owner",
  5259. "in": "path",
  5260. "required": true
  5261. },
  5262. {
  5263. "type": "string",
  5264. "description": "name of the repo",
  5265. "name": "repo",
  5266. "in": "path",
  5267. "required": true
  5268. },
  5269. {
  5270. "type": "integer",
  5271. "format": "int64",
  5272. "description": "index of the issue to get",
  5273. "name": "index",
  5274. "in": "path",
  5275. "required": true
  5276. }
  5277. ],
  5278. "responses": {
  5279. "200": {
  5280. "$ref": "#/responses/Issue"
  5281. },
  5282. "404": {
  5283. "$ref": "#/responses/notFound"
  5284. }
  5285. }
  5286. },
  5287. "delete": {
  5288. "tags": [
  5289. "issue"
  5290. ],
  5291. "summary": "Delete an issue",
  5292. "operationId": "issueDelete",
  5293. "parameters": [
  5294. {
  5295. "type": "string",
  5296. "description": "owner of the repo",
  5297. "name": "owner",
  5298. "in": "path",
  5299. "required": true
  5300. },
  5301. {
  5302. "type": "string",
  5303. "description": "name of the repo",
  5304. "name": "repo",
  5305. "in": "path",
  5306. "required": true
  5307. },
  5308. {
  5309. "type": "integer",
  5310. "format": "int64",
  5311. "description": "index of issue to delete",
  5312. "name": "index",
  5313. "in": "path",
  5314. "required": true
  5315. }
  5316. ],
  5317. "responses": {
  5318. "204": {
  5319. "$ref": "#/responses/empty"
  5320. },
  5321. "403": {
  5322. "$ref": "#/responses/forbidden"
  5323. },
  5324. "404": {
  5325. "$ref": "#/responses/notFound"
  5326. }
  5327. }
  5328. },
  5329. "patch": {
  5330. "consumes": [
  5331. "application/json"
  5332. ],
  5333. "produces": [
  5334. "application/json"
  5335. ],
  5336. "tags": [
  5337. "issue"
  5338. ],
  5339. "summary": "Edit an issue. If using deadline only the date will be taken into account, and time of day ignored.",
  5340. "operationId": "issueEditIssue",
  5341. "parameters": [
  5342. {
  5343. "type": "string",
  5344. "description": "owner of the repo",
  5345. "name": "owner",
  5346. "in": "path",
  5347. "required": true
  5348. },
  5349. {
  5350. "type": "string",
  5351. "description": "name of the repo",
  5352. "name": "repo",
  5353. "in": "path",
  5354. "required": true
  5355. },
  5356. {
  5357. "type": "integer",
  5358. "format": "int64",
  5359. "description": "index of the issue to edit",
  5360. "name": "index",
  5361. "in": "path",
  5362. "required": true
  5363. },
  5364. {
  5365. "name": "body",
  5366. "in": "body",
  5367. "schema": {
  5368. "$ref": "#/definitions/EditIssueOption"
  5369. }
  5370. }
  5371. ],
  5372. "responses": {
  5373. "201": {
  5374. "$ref": "#/responses/Issue"
  5375. },
  5376. "403": {
  5377. "$ref": "#/responses/forbidden"
  5378. },
  5379. "404": {
  5380. "$ref": "#/responses/notFound"
  5381. },
  5382. "412": {
  5383. "$ref": "#/responses/error"
  5384. }
  5385. }
  5386. }
  5387. },
  5388. "/repos/{owner}/{repo}/issues/{index}/comments": {
  5389. "get": {
  5390. "produces": [
  5391. "application/json"
  5392. ],
  5393. "tags": [
  5394. "issue"
  5395. ],
  5396. "summary": "List all comments on an issue",
  5397. "operationId": "issueGetComments",
  5398. "parameters": [
  5399. {
  5400. "type": "string",
  5401. "description": "owner of the repo",
  5402. "name": "owner",
  5403. "in": "path",
  5404. "required": true
  5405. },
  5406. {
  5407. "type": "string",
  5408. "description": "name of the repo",
  5409. "name": "repo",
  5410. "in": "path",
  5411. "required": true
  5412. },
  5413. {
  5414. "type": "integer",
  5415. "format": "int64",
  5416. "description": "index of the issue",
  5417. "name": "index",
  5418. "in": "path",
  5419. "required": true
  5420. },
  5421. {
  5422. "type": "string",
  5423. "format": "date-time",
  5424. "description": "if provided, only comments updated since the specified time are returned.",
  5425. "name": "since",
  5426. "in": "query"
  5427. },
  5428. {
  5429. "type": "string",
  5430. "format": "date-time",
  5431. "description": "if provided, only comments updated before the provided time are returned.",
  5432. "name": "before",
  5433. "in": "query"
  5434. }
  5435. ],
  5436. "responses": {
  5437. "200": {
  5438. "$ref": "#/responses/CommentList"
  5439. }
  5440. }
  5441. },
  5442. "post": {
  5443. "consumes": [
  5444. "application/json"
  5445. ],
  5446. "produces": [
  5447. "application/json"
  5448. ],
  5449. "tags": [
  5450. "issue"
  5451. ],
  5452. "summary": "Add a comment to an issue",
  5453. "operationId": "issueCreateComment",
  5454. "parameters": [
  5455. {
  5456. "type": "string",
  5457. "description": "owner of the repo",
  5458. "name": "owner",
  5459. "in": "path",
  5460. "required": true
  5461. },
  5462. {
  5463. "type": "string",
  5464. "description": "name of the repo",
  5465. "name": "repo",
  5466. "in": "path",
  5467. "required": true
  5468. },
  5469. {
  5470. "type": "integer",
  5471. "format": "int64",
  5472. "description": "index of the issue",
  5473. "name": "index",
  5474. "in": "path",
  5475. "required": true
  5476. },
  5477. {
  5478. "name": "body",
  5479. "in": "body",
  5480. "schema": {
  5481. "$ref": "#/definitions/CreateIssueCommentOption"
  5482. }
  5483. }
  5484. ],
  5485. "responses": {
  5486. "201": {
  5487. "$ref": "#/responses/Comment"
  5488. },
  5489. "403": {
  5490. "$ref": "#/responses/forbidden"
  5491. }
  5492. }
  5493. }
  5494. },
  5495. "/repos/{owner}/{repo}/issues/{index}/comments/{id}": {
  5496. "delete": {
  5497. "tags": [
  5498. "issue"
  5499. ],
  5500. "summary": "Delete a comment",
  5501. "operationId": "issueDeleteCommentDeprecated",
  5502. "deprecated": true,
  5503. "parameters": [
  5504. {
  5505. "type": "string",
  5506. "description": "owner of the repo",
  5507. "name": "owner",
  5508. "in": "path",
  5509. "required": true
  5510. },
  5511. {
  5512. "type": "string",
  5513. "description": "name of the repo",
  5514. "name": "repo",
  5515. "in": "path",
  5516. "required": true
  5517. },
  5518. {
  5519. "type": "integer",
  5520. "description": "this parameter is ignored",
  5521. "name": "index",
  5522. "in": "path",
  5523. "required": true
  5524. },
  5525. {
  5526. "type": "integer",
  5527. "format": "int64",
  5528. "description": "id of comment to delete",
  5529. "name": "id",
  5530. "in": "path",
  5531. "required": true
  5532. }
  5533. ],
  5534. "responses": {
  5535. "204": {
  5536. "$ref": "#/responses/empty"
  5537. },
  5538. "403": {
  5539. "$ref": "#/responses/forbidden"
  5540. },
  5541. "404": {
  5542. "$ref": "#/responses/notFound"
  5543. }
  5544. }
  5545. },
  5546. "patch": {
  5547. "consumes": [
  5548. "application/json"
  5549. ],
  5550. "produces": [
  5551. "application/json"
  5552. ],
  5553. "tags": [
  5554. "issue"
  5555. ],
  5556. "summary": "Edit a comment",
  5557. "operationId": "issueEditCommentDeprecated",
  5558. "deprecated": true,
  5559. "parameters": [
  5560. {
  5561. "type": "string",
  5562. "description": "owner of the repo",
  5563. "name": "owner",
  5564. "in": "path",
  5565. "required": true
  5566. },
  5567. {
  5568. "type": "string",
  5569. "description": "name of the repo",
  5570. "name": "repo",
  5571. "in": "path",
  5572. "required": true
  5573. },
  5574. {
  5575. "type": "integer",
  5576. "description": "this parameter is ignored",
  5577. "name": "index",
  5578. "in": "path",
  5579. "required": true
  5580. },
  5581. {
  5582. "type": "integer",
  5583. "format": "int64",
  5584. "description": "id of the comment to edit",
  5585. "name": "id",
  5586. "in": "path",
  5587. "required": true
  5588. },
  5589. {
  5590. "name": "body",
  5591. "in": "body",
  5592. "schema": {
  5593. "$ref": "#/definitions/EditIssueCommentOption"
  5594. }
  5595. }
  5596. ],
  5597. "responses": {
  5598. "200": {
  5599. "$ref": "#/responses/Comment"
  5600. },
  5601. "204": {
  5602. "$ref": "#/responses/empty"
  5603. },
  5604. "403": {
  5605. "$ref": "#/responses/forbidden"
  5606. },
  5607. "404": {
  5608. "$ref": "#/responses/notFound"
  5609. }
  5610. }
  5611. }
  5612. },
  5613. "/repos/{owner}/{repo}/issues/{index}/deadline": {
  5614. "post": {
  5615. "consumes": [
  5616. "application/json"
  5617. ],
  5618. "produces": [
  5619. "application/json"
  5620. ],
  5621. "tags": [
  5622. "issue"
  5623. ],
  5624. "summary": "Set an issue deadline. If set to null, the deadline is deleted. If using deadline only the date will be taken into account, and time of day ignored.",
  5625. "operationId": "issueEditIssueDeadline",
  5626. "parameters": [
  5627. {
  5628. "type": "string",
  5629. "description": "owner of the repo",
  5630. "name": "owner",
  5631. "in": "path",
  5632. "required": true
  5633. },
  5634. {
  5635. "type": "string",
  5636. "description": "name of the repo",
  5637. "name": "repo",
  5638. "in": "path",
  5639. "required": true
  5640. },
  5641. {
  5642. "type": "integer",
  5643. "format": "int64",
  5644. "description": "index of the issue to create or update a deadline on",
  5645. "name": "index",
  5646. "in": "path",
  5647. "required": true
  5648. },
  5649. {
  5650. "name": "body",
  5651. "in": "body",
  5652. "schema": {
  5653. "$ref": "#/definitions/EditDeadlineOption"
  5654. }
  5655. }
  5656. ],
  5657. "responses": {
  5658. "201": {
  5659. "$ref": "#/responses/IssueDeadline"
  5660. },
  5661. "403": {
  5662. "$ref": "#/responses/forbidden"
  5663. },
  5664. "404": {
  5665. "$ref": "#/responses/notFound"
  5666. }
  5667. }
  5668. }
  5669. },
  5670. "/repos/{owner}/{repo}/issues/{index}/labels": {
  5671. "get": {
  5672. "produces": [
  5673. "application/json"
  5674. ],
  5675. "tags": [
  5676. "issue"
  5677. ],
  5678. "summary": "Get an issue's labels",
  5679. "operationId": "issueGetLabels",
  5680. "parameters": [
  5681. {
  5682. "type": "string",
  5683. "description": "owner of the repo",
  5684. "name": "owner",
  5685. "in": "path",
  5686. "required": true
  5687. },
  5688. {
  5689. "type": "string",
  5690. "description": "name of the repo",
  5691. "name": "repo",
  5692. "in": "path",
  5693. "required": true
  5694. },
  5695. {
  5696. "type": "integer",
  5697. "format": "int64",
  5698. "description": "index of the issue",
  5699. "name": "index",
  5700. "in": "path",
  5701. "required": true
  5702. }
  5703. ],
  5704. "responses": {
  5705. "200": {
  5706. "$ref": "#/responses/LabelList"
  5707. },
  5708. "404": {
  5709. "$ref": "#/responses/notFound"
  5710. }
  5711. }
  5712. },
  5713. "put": {
  5714. "consumes": [
  5715. "application/json"
  5716. ],
  5717. "produces": [
  5718. "application/json"
  5719. ],
  5720. "tags": [
  5721. "issue"
  5722. ],
  5723. "summary": "Replace an issue's labels",
  5724. "operationId": "issueReplaceLabels",
  5725. "parameters": [
  5726. {
  5727. "type": "string",
  5728. "description": "owner of the repo",
  5729. "name": "owner",
  5730. "in": "path",
  5731. "required": true
  5732. },
  5733. {
  5734. "type": "string",
  5735. "description": "name of the repo",
  5736. "name": "repo",
  5737. "in": "path",
  5738. "required": true
  5739. },
  5740. {
  5741. "type": "integer",
  5742. "format": "int64",
  5743. "description": "index of the issue",
  5744. "name": "index",
  5745. "in": "path",
  5746. "required": true
  5747. },
  5748. {
  5749. "name": "body",
  5750. "in": "body",
  5751. "schema": {
  5752. "$ref": "#/definitions/IssueLabelsOption"
  5753. }
  5754. }
  5755. ],
  5756. "responses": {
  5757. "200": {
  5758. "$ref": "#/responses/LabelList"
  5759. },
  5760. "403": {
  5761. "$ref": "#/responses/forbidden"
  5762. }
  5763. }
  5764. },
  5765. "post": {
  5766. "consumes": [
  5767. "application/json"
  5768. ],
  5769. "produces": [
  5770. "application/json"
  5771. ],
  5772. "tags": [
  5773. "issue"
  5774. ],
  5775. "summary": "Add a label to an issue",
  5776. "operationId": "issueAddLabel",
  5777. "parameters": [
  5778. {
  5779. "type": "string",
  5780. "description": "owner of the repo",
  5781. "name": "owner",
  5782. "in": "path",
  5783. "required": true
  5784. },
  5785. {
  5786. "type": "string",
  5787. "description": "name of the repo",
  5788. "name": "repo",
  5789. "in": "path",
  5790. "required": true
  5791. },
  5792. {
  5793. "type": "integer",
  5794. "format": "int64",
  5795. "description": "index of the issue",
  5796. "name": "index",
  5797. "in": "path",
  5798. "required": true
  5799. },
  5800. {
  5801. "name": "body",
  5802. "in": "body",
  5803. "schema": {
  5804. "$ref": "#/definitions/IssueLabelsOption"
  5805. }
  5806. }
  5807. ],
  5808. "responses": {
  5809. "200": {
  5810. "$ref": "#/responses/LabelList"
  5811. },
  5812. "403": {
  5813. "$ref": "#/responses/forbidden"
  5814. }
  5815. }
  5816. },
  5817. "delete": {
  5818. "produces": [
  5819. "application/json"
  5820. ],
  5821. "tags": [
  5822. "issue"
  5823. ],
  5824. "summary": "Remove all labels from an issue",
  5825. "operationId": "issueClearLabels",
  5826. "parameters": [
  5827. {
  5828. "type": "string",
  5829. "description": "owner of the repo",
  5830. "name": "owner",
  5831. "in": "path",
  5832. "required": true
  5833. },
  5834. {
  5835. "type": "string",
  5836. "description": "name of the repo",
  5837. "name": "repo",
  5838. "in": "path",
  5839. "required": true
  5840. },
  5841. {
  5842. "type": "integer",
  5843. "format": "int64",
  5844. "description": "index of the issue",
  5845. "name": "index",
  5846. "in": "path",
  5847. "required": true
  5848. }
  5849. ],
  5850. "responses": {
  5851. "204": {
  5852. "$ref": "#/responses/empty"
  5853. },
  5854. "403": {
  5855. "$ref": "#/responses/forbidden"
  5856. }
  5857. }
  5858. }
  5859. },
  5860. "/repos/{owner}/{repo}/issues/{index}/labels/{id}": {
  5861. "delete": {
  5862. "produces": [
  5863. "application/json"
  5864. ],
  5865. "tags": [
  5866. "issue"
  5867. ],
  5868. "summary": "Remove a label from an issue",
  5869. "operationId": "issueRemoveLabel",
  5870. "parameters": [
  5871. {
  5872. "type": "string",
  5873. "description": "owner of the repo",
  5874. "name": "owner",
  5875. "in": "path",
  5876. "required": true
  5877. },
  5878. {
  5879. "type": "string",
  5880. "description": "name of the repo",
  5881. "name": "repo",
  5882. "in": "path",
  5883. "required": true
  5884. },
  5885. {
  5886. "type": "integer",
  5887. "format": "int64",
  5888. "description": "index of the issue",
  5889. "name": "index",
  5890. "in": "path",
  5891. "required": true
  5892. },
  5893. {
  5894. "type": "integer",
  5895. "format": "int64",
  5896. "description": "id of the label to remove",
  5897. "name": "id",
  5898. "in": "path",
  5899. "required": true
  5900. }
  5901. ],
  5902. "responses": {
  5903. "204": {
  5904. "$ref": "#/responses/empty"
  5905. },
  5906. "403": {
  5907. "$ref": "#/responses/forbidden"
  5908. },
  5909. "422": {
  5910. "$ref": "#/responses/validationError"
  5911. }
  5912. }
  5913. }
  5914. },
  5915. "/repos/{owner}/{repo}/issues/{index}/reactions": {
  5916. "get": {
  5917. "consumes": [
  5918. "application/json"
  5919. ],
  5920. "produces": [
  5921. "application/json"
  5922. ],
  5923. "tags": [
  5924. "issue"
  5925. ],
  5926. "summary": "Get a list reactions of an issue",
  5927. "operationId": "issueGetIssueReactions",
  5928. "parameters": [
  5929. {
  5930. "type": "string",
  5931. "description": "owner of the repo",
  5932. "name": "owner",
  5933. "in": "path",
  5934. "required": true
  5935. },
  5936. {
  5937. "type": "string",
  5938. "description": "name of the repo",
  5939. "name": "repo",
  5940. "in": "path",
  5941. "required": true
  5942. },
  5943. {
  5944. "type": "integer",
  5945. "format": "int64",
  5946. "description": "index of the issue",
  5947. "name": "index",
  5948. "in": "path",
  5949. "required": true
  5950. },
  5951. {
  5952. "type": "integer",
  5953. "description": "page number of results to return (1-based)",
  5954. "name": "page",
  5955. "in": "query"
  5956. },
  5957. {
  5958. "type": "integer",
  5959. "description": "page size of results",
  5960. "name": "limit",
  5961. "in": "query"
  5962. }
  5963. ],
  5964. "responses": {
  5965. "200": {
  5966. "$ref": "#/responses/ReactionList"
  5967. },
  5968. "403": {
  5969. "$ref": "#/responses/forbidden"
  5970. }
  5971. }
  5972. },
  5973. "post": {
  5974. "consumes": [
  5975. "application/json"
  5976. ],
  5977. "produces": [
  5978. "application/json"
  5979. ],
  5980. "tags": [
  5981. "issue"
  5982. ],
  5983. "summary": "Add a reaction to an issue",
  5984. "operationId": "issuePostIssueReaction",
  5985. "parameters": [
  5986. {
  5987. "type": "string",
  5988. "description": "owner of the repo",
  5989. "name": "owner",
  5990. "in": "path",
  5991. "required": true
  5992. },
  5993. {
  5994. "type": "string",
  5995. "description": "name of the repo",
  5996. "name": "repo",
  5997. "in": "path",
  5998. "required": true
  5999. },
  6000. {
  6001. "type": "integer",
  6002. "format": "int64",
  6003. "description": "index of the issue",
  6004. "name": "index",
  6005. "in": "path",
  6006. "required": true
  6007. },
  6008. {
  6009. "name": "content",
  6010. "in": "body",
  6011. "schema": {
  6012. "$ref": "#/definitions/EditReactionOption"
  6013. }
  6014. }
  6015. ],
  6016. "responses": {
  6017. "200": {
  6018. "$ref": "#/responses/Reaction"
  6019. },
  6020. "201": {
  6021. "$ref": "#/responses/Reaction"
  6022. },
  6023. "403": {
  6024. "$ref": "#/responses/forbidden"
  6025. }
  6026. }
  6027. },
  6028. "delete": {
  6029. "consumes": [
  6030. "application/json"
  6031. ],
  6032. "produces": [
  6033. "application/json"
  6034. ],
  6035. "tags": [
  6036. "issue"
  6037. ],
  6038. "summary": "Remove a reaction from an issue",
  6039. "operationId": "issueDeleteIssueReaction",
  6040. "parameters": [
  6041. {
  6042. "type": "string",
  6043. "description": "owner of the repo",
  6044. "name": "owner",
  6045. "in": "path",
  6046. "required": true
  6047. },
  6048. {
  6049. "type": "string",
  6050. "description": "name of the repo",
  6051. "name": "repo",
  6052. "in": "path",
  6053. "required": true
  6054. },
  6055. {
  6056. "type": "integer",
  6057. "format": "int64",
  6058. "description": "index of the issue",
  6059. "name": "index",
  6060. "in": "path",
  6061. "required": true
  6062. },
  6063. {
  6064. "name": "content",
  6065. "in": "body",
  6066. "schema": {
  6067. "$ref": "#/definitions/EditReactionOption"
  6068. }
  6069. }
  6070. ],
  6071. "responses": {
  6072. "200": {
  6073. "$ref": "#/responses/empty"
  6074. },
  6075. "403": {
  6076. "$ref": "#/responses/forbidden"
  6077. }
  6078. }
  6079. }
  6080. },
  6081. "/repos/{owner}/{repo}/issues/{index}/stopwatch/delete": {
  6082. "delete": {
  6083. "consumes": [
  6084. "application/json"
  6085. ],
  6086. "produces": [
  6087. "application/json"
  6088. ],
  6089. "tags": [
  6090. "issue"
  6091. ],
  6092. "summary": "Delete an issue's existing stopwatch.",
  6093. "operationId": "issueDeleteStopWatch",
  6094. "parameters": [
  6095. {
  6096. "type": "string",
  6097. "description": "owner of the repo",
  6098. "name": "owner",
  6099. "in": "path",
  6100. "required": true
  6101. },
  6102. {
  6103. "type": "string",
  6104. "description": "name of the repo",
  6105. "name": "repo",
  6106. "in": "path",
  6107. "required": true
  6108. },
  6109. {
  6110. "type": "integer",
  6111. "format": "int64",
  6112. "description": "index of the issue to stop the stopwatch on",
  6113. "name": "index",
  6114. "in": "path",
  6115. "required": true
  6116. }
  6117. ],
  6118. "responses": {
  6119. "204": {
  6120. "$ref": "#/responses/empty"
  6121. },
  6122. "403": {
  6123. "description": "Not repo writer, user does not have rights to toggle stopwatch"
  6124. },
  6125. "404": {
  6126. "$ref": "#/responses/notFound"
  6127. },
  6128. "409": {
  6129. "description": "Cannot cancel a non existent stopwatch"
  6130. }
  6131. }
  6132. }
  6133. },
  6134. "/repos/{owner}/{repo}/issues/{index}/stopwatch/start": {
  6135. "post": {
  6136. "consumes": [
  6137. "application/json"
  6138. ],
  6139. "produces": [
  6140. "application/json"
  6141. ],
  6142. "tags": [
  6143. "issue"
  6144. ],
  6145. "summary": "Start stopwatch on an issue.",
  6146. "operationId": "issueStartStopWatch",
  6147. "parameters": [
  6148. {
  6149. "type": "string",
  6150. "description": "owner of the repo",
  6151. "name": "owner",
  6152. "in": "path",
  6153. "required": true
  6154. },
  6155. {
  6156. "type": "string",
  6157. "description": "name of the repo",
  6158. "name": "repo",
  6159. "in": "path",
  6160. "required": true
  6161. },
  6162. {
  6163. "type": "integer",
  6164. "format": "int64",
  6165. "description": "index of the issue to create the stopwatch on",
  6166. "name": "index",
  6167. "in": "path",
  6168. "required": true
  6169. }
  6170. ],
  6171. "responses": {
  6172. "201": {
  6173. "$ref": "#/responses/empty"
  6174. },
  6175. "403": {
  6176. "description": "Not repo writer, user does not have rights to toggle stopwatch"
  6177. },
  6178. "404": {
  6179. "$ref": "#/responses/notFound"
  6180. },
  6181. "409": {
  6182. "description": "Cannot start a stopwatch again if it already exists"
  6183. }
  6184. }
  6185. }
  6186. },
  6187. "/repos/{owner}/{repo}/issues/{index}/stopwatch/stop": {
  6188. "post": {
  6189. "consumes": [
  6190. "application/json"
  6191. ],
  6192. "produces": [
  6193. "application/json"
  6194. ],
  6195. "tags": [
  6196. "issue"
  6197. ],
  6198. "summary": "Stop an issue's existing stopwatch.",
  6199. "operationId": "issueStopStopWatch",
  6200. "parameters": [
  6201. {
  6202. "type": "string",
  6203. "description": "owner of the repo",
  6204. "name": "owner",
  6205. "in": "path",
  6206. "required": true
  6207. },
  6208. {
  6209. "type": "string",
  6210. "description": "name of the repo",
  6211. "name": "repo",
  6212. "in": "path",
  6213. "required": true
  6214. },
  6215. {
  6216. "type": "integer",
  6217. "format": "int64",
  6218. "description": "index of the issue to stop the stopwatch on",
  6219. "name": "index",
  6220. "in": "path",
  6221. "required": true
  6222. }
  6223. ],
  6224. "responses": {
  6225. "201": {
  6226. "$ref": "#/responses/empty"
  6227. },
  6228. "403": {
  6229. "description": "Not repo writer, user does not have rights to toggle stopwatch"
  6230. },
  6231. "404": {
  6232. "$ref": "#/responses/notFound"
  6233. },
  6234. "409": {
  6235. "description": "Cannot stop a non existent stopwatch"
  6236. }
  6237. }
  6238. }
  6239. },
  6240. "/repos/{owner}/{repo}/issues/{index}/subscriptions": {
  6241. "get": {
  6242. "consumes": [
  6243. "application/json"
  6244. ],
  6245. "produces": [
  6246. "application/json"
  6247. ],
  6248. "tags": [
  6249. "issue"
  6250. ],
  6251. "summary": "Get users who subscribed on an issue.",
  6252. "operationId": "issueSubscriptions",
  6253. "parameters": [
  6254. {
  6255. "type": "string",
  6256. "description": "owner of the repo",
  6257. "name": "owner",
  6258. "in": "path",
  6259. "required": true
  6260. },
  6261. {
  6262. "type": "string",
  6263. "description": "name of the repo",
  6264. "name": "repo",
  6265. "in": "path",
  6266. "required": true
  6267. },
  6268. {
  6269. "type": "integer",
  6270. "format": "int64",
  6271. "description": "index of the issue",
  6272. "name": "index",
  6273. "in": "path",
  6274. "required": true
  6275. },
  6276. {
  6277. "type": "integer",
  6278. "description": "page number of results to return (1-based)",
  6279. "name": "page",
  6280. "in": "query"
  6281. },
  6282. {
  6283. "type": "integer",
  6284. "description": "page size of results",
  6285. "name": "limit",
  6286. "in": "query"
  6287. }
  6288. ],
  6289. "responses": {
  6290. "200": {
  6291. "$ref": "#/responses/UserList"
  6292. },
  6293. "404": {
  6294. "$ref": "#/responses/notFound"
  6295. }
  6296. }
  6297. }
  6298. },
  6299. "/repos/{owner}/{repo}/issues/{index}/subscriptions/check": {
  6300. "get": {
  6301. "consumes": [
  6302. "application/json"
  6303. ],
  6304. "produces": [
  6305. "application/json"
  6306. ],
  6307. "tags": [
  6308. "issue"
  6309. ],
  6310. "summary": "Check if user is subscribed to an issue",
  6311. "operationId": "issueCheckSubscription",
  6312. "parameters": [
  6313. {
  6314. "type": "string",
  6315. "description": "owner of the repo",
  6316. "name": "owner",
  6317. "in": "path",
  6318. "required": true
  6319. },
  6320. {
  6321. "type": "string",
  6322. "description": "name of the repo",
  6323. "name": "repo",
  6324. "in": "path",
  6325. "required": true
  6326. },
  6327. {
  6328. "type": "integer",
  6329. "format": "int64",
  6330. "description": "index of the issue",
  6331. "name": "index",
  6332. "in": "path",
  6333. "required": true
  6334. }
  6335. ],
  6336. "responses": {
  6337. "200": {
  6338. "$ref": "#/responses/WatchInfo"
  6339. },
  6340. "404": {
  6341. "$ref": "#/responses/notFound"
  6342. }
  6343. }
  6344. }
  6345. },
  6346. "/repos/{owner}/{repo}/issues/{index}/subscriptions/{user}": {
  6347. "put": {
  6348. "consumes": [
  6349. "application/json"
  6350. ],
  6351. "produces": [
  6352. "application/json"
  6353. ],
  6354. "tags": [
  6355. "issue"
  6356. ],
  6357. "summary": "Subscribe user to issue",
  6358. "operationId": "issueAddSubscription",
  6359. "parameters": [
  6360. {
  6361. "type": "string",
  6362. "description": "owner of the repo",
  6363. "name": "owner",
  6364. "in": "path",
  6365. "required": true
  6366. },
  6367. {
  6368. "type": "string",
  6369. "description": "name of the repo",
  6370. "name": "repo",
  6371. "in": "path",
  6372. "required": true
  6373. },
  6374. {
  6375. "type": "integer",
  6376. "format": "int64",
  6377. "description": "index of the issue",
  6378. "name": "index",
  6379. "in": "path",
  6380. "required": true
  6381. },
  6382. {
  6383. "type": "string",
  6384. "description": "user to subscribe",
  6385. "name": "user",
  6386. "in": "path",
  6387. "required": true
  6388. }
  6389. ],
  6390. "responses": {
  6391. "200": {
  6392. "description": "Already subscribed"
  6393. },
  6394. "201": {
  6395. "description": "Successfully Subscribed"
  6396. },
  6397. "304": {
  6398. "description": "User can only subscribe itself if he is no admin"
  6399. },
  6400. "404": {
  6401. "$ref": "#/responses/notFound"
  6402. }
  6403. }
  6404. },
  6405. "delete": {
  6406. "consumes": [
  6407. "application/json"
  6408. ],
  6409. "produces": [
  6410. "application/json"
  6411. ],
  6412. "tags": [
  6413. "issue"
  6414. ],
  6415. "summary": "Unsubscribe user from issue",
  6416. "operationId": "issueDeleteSubscription",
  6417. "parameters": [
  6418. {
  6419. "type": "string",
  6420. "description": "owner of the repo",
  6421. "name": "owner",
  6422. "in": "path",
  6423. "required": true
  6424. },
  6425. {
  6426. "type": "string",
  6427. "description": "name of the repo",
  6428. "name": "repo",
  6429. "in": "path",
  6430. "required": true
  6431. },
  6432. {
  6433. "type": "integer",
  6434. "format": "int64",
  6435. "description": "index of the issue",
  6436. "name": "index",
  6437. "in": "path",
  6438. "required": true
  6439. },
  6440. {
  6441. "type": "string",
  6442. "description": "user witch unsubscribe",
  6443. "name": "user",
  6444. "in": "path",
  6445. "required": true
  6446. }
  6447. ],
  6448. "responses": {
  6449. "200": {
  6450. "description": "Already unsubscribed"
  6451. },
  6452. "201": {
  6453. "description": "Successfully Unsubscribed"
  6454. },
  6455. "304": {
  6456. "description": "User can only subscribe itself if he is no admin"
  6457. },
  6458. "404": {
  6459. "$ref": "#/responses/notFound"
  6460. }
  6461. }
  6462. }
  6463. },
  6464. "/repos/{owner}/{repo}/issues/{index}/timeline": {
  6465. "get": {
  6466. "produces": [
  6467. "application/json"
  6468. ],
  6469. "tags": [
  6470. "issue"
  6471. ],
  6472. "summary": "List all comments and events on an issue",
  6473. "operationId": "issueGetCommentsAndTimeline",
  6474. "parameters": [
  6475. {
  6476. "type": "string",
  6477. "description": "owner of the repo",
  6478. "name": "owner",
  6479. "in": "path",
  6480. "required": true
  6481. },
  6482. {
  6483. "type": "string",
  6484. "description": "name of the repo",
  6485. "name": "repo",
  6486. "in": "path",
  6487. "required": true
  6488. },
  6489. {
  6490. "type": "integer",
  6491. "format": "int64",
  6492. "description": "index of the issue",
  6493. "name": "index",
  6494. "in": "path",
  6495. "required": true
  6496. },
  6497. {
  6498. "type": "string",
  6499. "format": "date-time",
  6500. "description": "if provided, only comments updated since the specified time are returned.",
  6501. "name": "since",
  6502. "in": "query"
  6503. },
  6504. {
  6505. "type": "integer",
  6506. "description": "page number of results to return (1-based)",
  6507. "name": "page",
  6508. "in": "query"
  6509. },
  6510. {
  6511. "type": "integer",
  6512. "description": "page size of results",
  6513. "name": "limit",
  6514. "in": "query"
  6515. },
  6516. {
  6517. "type": "string",
  6518. "format": "date-time",
  6519. "description": "if provided, only comments updated before the provided time are returned.",
  6520. "name": "before",
  6521. "in": "query"
  6522. }
  6523. ],
  6524. "responses": {
  6525. "200": {
  6526. "$ref": "#/responses/TimelineList"
  6527. }
  6528. }
  6529. }
  6530. },
  6531. "/repos/{owner}/{repo}/issues/{index}/times": {
  6532. "get": {
  6533. "produces": [
  6534. "application/json"
  6535. ],
  6536. "tags": [
  6537. "issue"
  6538. ],
  6539. "summary": "List an issue's tracked times",
  6540. "operationId": "issueTrackedTimes",
  6541. "parameters": [
  6542. {
  6543. "type": "string",
  6544. "description": "owner of the repo",
  6545. "name": "owner",
  6546. "in": "path",
  6547. "required": true
  6548. },
  6549. {
  6550. "type": "string",
  6551. "description": "name of the repo",
  6552. "name": "repo",
  6553. "in": "path",
  6554. "required": true
  6555. },
  6556. {
  6557. "type": "integer",
  6558. "format": "int64",
  6559. "description": "index of the issue",
  6560. "name": "index",
  6561. "in": "path",
  6562. "required": true
  6563. },
  6564. {
  6565. "type": "string",
  6566. "description": "optional filter by user (available for issue managers)",
  6567. "name": "user",
  6568. "in": "query"
  6569. },
  6570. {
  6571. "type": "string",
  6572. "format": "date-time",
  6573. "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format",
  6574. "name": "since",
  6575. "in": "query"
  6576. },
  6577. {
  6578. "type": "string",
  6579. "format": "date-time",
  6580. "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format",
  6581. "name": "before",
  6582. "in": "query"
  6583. },
  6584. {
  6585. "type": "integer",
  6586. "description": "page number of results to return (1-based)",
  6587. "name": "page",
  6588. "in": "query"
  6589. },
  6590. {
  6591. "type": "integer",
  6592. "description": "page size of results",
  6593. "name": "limit",
  6594. "in": "query"
  6595. }
  6596. ],
  6597. "responses": {
  6598. "200": {
  6599. "$ref": "#/responses/TrackedTimeList"
  6600. },
  6601. "404": {
  6602. "$ref": "#/responses/notFound"
  6603. }
  6604. }
  6605. },
  6606. "post": {
  6607. "consumes": [
  6608. "application/json"
  6609. ],
  6610. "produces": [
  6611. "application/json"
  6612. ],
  6613. "tags": [
  6614. "issue"
  6615. ],
  6616. "summary": "Add tracked time to a issue",
  6617. "operationId": "issueAddTime",
  6618. "parameters": [
  6619. {
  6620. "type": "string",
  6621. "description": "owner of the repo",
  6622. "name": "owner",
  6623. "in": "path",
  6624. "required": true
  6625. },
  6626. {
  6627. "type": "string",
  6628. "description": "name of the repo",
  6629. "name": "repo",
  6630. "in": "path",
  6631. "required": true
  6632. },
  6633. {
  6634. "type": "integer",
  6635. "format": "int64",
  6636. "description": "index of the issue",
  6637. "name": "index",
  6638. "in": "path",
  6639. "required": true
  6640. },
  6641. {
  6642. "name": "body",
  6643. "in": "body",
  6644. "schema": {
  6645. "$ref": "#/definitions/AddTimeOption"
  6646. }
  6647. }
  6648. ],
  6649. "responses": {
  6650. "200": {
  6651. "$ref": "#/responses/TrackedTime"
  6652. },
  6653. "400": {
  6654. "$ref": "#/responses/error"
  6655. },
  6656. "403": {
  6657. "$ref": "#/responses/forbidden"
  6658. }
  6659. }
  6660. },
  6661. "delete": {
  6662. "consumes": [
  6663. "application/json"
  6664. ],
  6665. "produces": [
  6666. "application/json"
  6667. ],
  6668. "tags": [
  6669. "issue"
  6670. ],
  6671. "summary": "Reset a tracked time of an issue",
  6672. "operationId": "issueResetTime",
  6673. "parameters": [
  6674. {
  6675. "type": "string",
  6676. "description": "owner of the repo",
  6677. "name": "owner",
  6678. "in": "path",
  6679. "required": true
  6680. },
  6681. {
  6682. "type": "string",
  6683. "description": "name of the repo",
  6684. "name": "repo",
  6685. "in": "path",
  6686. "required": true
  6687. },
  6688. {
  6689. "type": "integer",
  6690. "format": "int64",
  6691. "description": "index of the issue to add tracked time to",
  6692. "name": "index",
  6693. "in": "path",
  6694. "required": true
  6695. }
  6696. ],
  6697. "responses": {
  6698. "204": {
  6699. "$ref": "#/responses/empty"
  6700. },
  6701. "400": {
  6702. "$ref": "#/responses/error"
  6703. },
  6704. "403": {
  6705. "$ref": "#/responses/forbidden"
  6706. }
  6707. }
  6708. }
  6709. },
  6710. "/repos/{owner}/{repo}/issues/{index}/times/{id}": {
  6711. "delete": {
  6712. "consumes": [
  6713. "application/json"
  6714. ],
  6715. "produces": [
  6716. "application/json"
  6717. ],
  6718. "tags": [
  6719. "issue"
  6720. ],
  6721. "summary": "Delete specific tracked time",
  6722. "operationId": "issueDeleteTime",
  6723. "parameters": [
  6724. {
  6725. "type": "string",
  6726. "description": "owner of the repo",
  6727. "name": "owner",
  6728. "in": "path",
  6729. "required": true
  6730. },
  6731. {
  6732. "type": "string",
  6733. "description": "name of the repo",
  6734. "name": "repo",
  6735. "in": "path",
  6736. "required": true
  6737. },
  6738. {
  6739. "type": "integer",
  6740. "format": "int64",
  6741. "description": "index of the issue",
  6742. "name": "index",
  6743. "in": "path",
  6744. "required": true
  6745. },
  6746. {
  6747. "type": "integer",
  6748. "format": "int64",
  6749. "description": "id of time to delete",
  6750. "name": "id",
  6751. "in": "path",
  6752. "required": true
  6753. }
  6754. ],
  6755. "responses": {
  6756. "204": {
  6757. "$ref": "#/responses/empty"
  6758. },
  6759. "400": {
  6760. "$ref": "#/responses/error"
  6761. },
  6762. "403": {
  6763. "$ref": "#/responses/forbidden"
  6764. }
  6765. }
  6766. }
  6767. },
  6768. "/repos/{owner}/{repo}/keys": {
  6769. "get": {
  6770. "produces": [
  6771. "application/json"
  6772. ],
  6773. "tags": [
  6774. "repository"
  6775. ],
  6776. "summary": "List a repository's keys",
  6777. "operationId": "repoListKeys",
  6778. "parameters": [
  6779. {
  6780. "type": "string",
  6781. "description": "owner of the repo",
  6782. "name": "owner",
  6783. "in": "path",
  6784. "required": true
  6785. },
  6786. {
  6787. "type": "string",
  6788. "description": "name of the repo",
  6789. "name": "repo",
  6790. "in": "path",
  6791. "required": true
  6792. },
  6793. {
  6794. "type": "integer",
  6795. "description": "the key_id to search for",
  6796. "name": "key_id",
  6797. "in": "query"
  6798. },
  6799. {
  6800. "type": "string",
  6801. "description": "fingerprint of the key",
  6802. "name": "fingerprint",
  6803. "in": "query"
  6804. },
  6805. {
  6806. "type": "integer",
  6807. "description": "page number of results to return (1-based)",
  6808. "name": "page",
  6809. "in": "query"
  6810. },
  6811. {
  6812. "type": "integer",
  6813. "description": "page size of results",
  6814. "name": "limit",
  6815. "in": "query"
  6816. }
  6817. ],
  6818. "responses": {
  6819. "200": {
  6820. "$ref": "#/responses/DeployKeyList"
  6821. }
  6822. }
  6823. },
  6824. "post": {
  6825. "consumes": [
  6826. "application/json"
  6827. ],
  6828. "produces": [
  6829. "application/json"
  6830. ],
  6831. "tags": [
  6832. "repository"
  6833. ],
  6834. "summary": "Add a key to a repository",
  6835. "operationId": "repoCreateKey",
  6836. "parameters": [
  6837. {
  6838. "type": "string",
  6839. "description": "owner of the repo",
  6840. "name": "owner",
  6841. "in": "path",
  6842. "required": true
  6843. },
  6844. {
  6845. "type": "string",
  6846. "description": "name of the repo",
  6847. "name": "repo",
  6848. "in": "path",
  6849. "required": true
  6850. },
  6851. {
  6852. "name": "body",
  6853. "in": "body",
  6854. "schema": {
  6855. "$ref": "#/definitions/CreateKeyOption"
  6856. }
  6857. }
  6858. ],
  6859. "responses": {
  6860. "201": {
  6861. "$ref": "#/responses/DeployKey"
  6862. },
  6863. "422": {
  6864. "$ref": "#/responses/validationError"
  6865. }
  6866. }
  6867. }
  6868. },
  6869. "/repos/{owner}/{repo}/keys/{id}": {
  6870. "get": {
  6871. "produces": [
  6872. "application/json"
  6873. ],
  6874. "tags": [
  6875. "repository"
  6876. ],
  6877. "summary": "Get a repository's key by id",
  6878. "operationId": "repoGetKey",
  6879. "parameters": [
  6880. {
  6881. "type": "string",
  6882. "description": "owner of the repo",
  6883. "name": "owner",
  6884. "in": "path",
  6885. "required": true
  6886. },
  6887. {
  6888. "type": "string",
  6889. "description": "name of the repo",
  6890. "name": "repo",
  6891. "in": "path",
  6892. "required": true
  6893. },
  6894. {
  6895. "type": "integer",
  6896. "format": "int64",
  6897. "description": "id of the key to get",
  6898. "name": "id",
  6899. "in": "path",
  6900. "required": true
  6901. }
  6902. ],
  6903. "responses": {
  6904. "200": {
  6905. "$ref": "#/responses/DeployKey"
  6906. }
  6907. }
  6908. },
  6909. "delete": {
  6910. "tags": [
  6911. "repository"
  6912. ],
  6913. "summary": "Delete a key from a repository",
  6914. "operationId": "repoDeleteKey",
  6915. "parameters": [
  6916. {
  6917. "type": "string",
  6918. "description": "owner of the repo",
  6919. "name": "owner",
  6920. "in": "path",
  6921. "required": true
  6922. },
  6923. {
  6924. "type": "string",
  6925. "description": "name of the repo",
  6926. "name": "repo",
  6927. "in": "path",
  6928. "required": true
  6929. },
  6930. {
  6931. "type": "integer",
  6932. "format": "int64",
  6933. "description": "id of the key to delete",
  6934. "name": "id",
  6935. "in": "path",
  6936. "required": true
  6937. }
  6938. ],
  6939. "responses": {
  6940. "204": {
  6941. "$ref": "#/responses/empty"
  6942. },
  6943. "403": {
  6944. "$ref": "#/responses/forbidden"
  6945. }
  6946. }
  6947. }
  6948. },
  6949. "/repos/{owner}/{repo}/labels": {
  6950. "get": {
  6951. "produces": [
  6952. "application/json"
  6953. ],
  6954. "tags": [
  6955. "issue"
  6956. ],
  6957. "summary": "Get all of a repository's labels",
  6958. "operationId": "issueListLabels",
  6959. "parameters": [
  6960. {
  6961. "type": "string",
  6962. "description": "owner of the repo",
  6963. "name": "owner",
  6964. "in": "path",
  6965. "required": true
  6966. },
  6967. {
  6968. "type": "string",
  6969. "description": "name of the repo",
  6970. "name": "repo",
  6971. "in": "path",
  6972. "required": true
  6973. },
  6974. {
  6975. "type": "integer",
  6976. "description": "page number of results to return (1-based)",
  6977. "name": "page",
  6978. "in": "query"
  6979. },
  6980. {
  6981. "type": "integer",
  6982. "description": "page size of results",
  6983. "name": "limit",
  6984. "in": "query"
  6985. }
  6986. ],
  6987. "responses": {
  6988. "200": {
  6989. "$ref": "#/responses/LabelList"
  6990. }
  6991. }
  6992. },
  6993. "post": {
  6994. "consumes": [
  6995. "application/json"
  6996. ],
  6997. "produces": [
  6998. "application/json"
  6999. ],
  7000. "tags": [
  7001. "issue"
  7002. ],
  7003. "summary": "Create a label",
  7004. "operationId": "issueCreateLabel",
  7005. "parameters": [
  7006. {
  7007. "type": "string",
  7008. "description": "owner of the repo",
  7009. "name": "owner",
  7010. "in": "path",
  7011. "required": true
  7012. },
  7013. {
  7014. "type": "string",
  7015. "description": "name of the repo",
  7016. "name": "repo",
  7017. "in": "path",
  7018. "required": true
  7019. },
  7020. {
  7021. "name": "body",
  7022. "in": "body",
  7023. "schema": {
  7024. "$ref": "#/definitions/CreateLabelOption"
  7025. }
  7026. }
  7027. ],
  7028. "responses": {
  7029. "201": {
  7030. "$ref": "#/responses/Label"
  7031. },
  7032. "422": {
  7033. "$ref": "#/responses/validationError"
  7034. }
  7035. }
  7036. }
  7037. },
  7038. "/repos/{owner}/{repo}/labels/{id}": {
  7039. "get": {
  7040. "produces": [
  7041. "application/json"
  7042. ],
  7043. "tags": [
  7044. "issue"
  7045. ],
  7046. "summary": "Get a single label",
  7047. "operationId": "issueGetLabel",
  7048. "parameters": [
  7049. {
  7050. "type": "string",
  7051. "description": "owner of the repo",
  7052. "name": "owner",
  7053. "in": "path",
  7054. "required": true
  7055. },
  7056. {
  7057. "type": "string",
  7058. "description": "name of the repo",
  7059. "name": "repo",
  7060. "in": "path",
  7061. "required": true
  7062. },
  7063. {
  7064. "type": "integer",
  7065. "format": "int64",
  7066. "description": "id of the label to get",
  7067. "name": "id",
  7068. "in": "path",
  7069. "required": true
  7070. }
  7071. ],
  7072. "responses": {
  7073. "200": {
  7074. "$ref": "#/responses/Label"
  7075. }
  7076. }
  7077. },
  7078. "delete": {
  7079. "tags": [
  7080. "issue"
  7081. ],
  7082. "summary": "Delete a label",
  7083. "operationId": "issueDeleteLabel",
  7084. "parameters": [
  7085. {
  7086. "type": "string",
  7087. "description": "owner of the repo",
  7088. "name": "owner",
  7089. "in": "path",
  7090. "required": true
  7091. },
  7092. {
  7093. "type": "string",
  7094. "description": "name of the repo",
  7095. "name": "repo",
  7096. "in": "path",
  7097. "required": true
  7098. },
  7099. {
  7100. "type": "integer",
  7101. "format": "int64",
  7102. "description": "id of the label to delete",
  7103. "name": "id",
  7104. "in": "path",
  7105. "required": true
  7106. }
  7107. ],
  7108. "responses": {
  7109. "204": {
  7110. "$ref": "#/responses/empty"
  7111. }
  7112. }
  7113. },
  7114. "patch": {
  7115. "consumes": [
  7116. "application/json"
  7117. ],
  7118. "produces": [
  7119. "application/json"
  7120. ],
  7121. "tags": [
  7122. "issue"
  7123. ],
  7124. "summary": "Update a label",
  7125. "operationId": "issueEditLabel",
  7126. "parameters": [
  7127. {
  7128. "type": "string",
  7129. "description": "owner of the repo",
  7130. "name": "owner",
  7131. "in": "path",
  7132. "required": true
  7133. },
  7134. {
  7135. "type": "string",
  7136. "description": "name of the repo",
  7137. "name": "repo",
  7138. "in": "path",
  7139. "required": true
  7140. },
  7141. {
  7142. "type": "integer",
  7143. "format": "int64",
  7144. "description": "id of the label to edit",
  7145. "name": "id",
  7146. "in": "path",
  7147. "required": true
  7148. },
  7149. {
  7150. "name": "body",
  7151. "in": "body",
  7152. "schema": {
  7153. "$ref": "#/definitions/EditLabelOption"
  7154. }
  7155. }
  7156. ],
  7157. "responses": {
  7158. "200": {
  7159. "$ref": "#/responses/Label"
  7160. },
  7161. "422": {
  7162. "$ref": "#/responses/validationError"
  7163. }
  7164. }
  7165. }
  7166. },
  7167. "/repos/{owner}/{repo}/languages": {
  7168. "get": {
  7169. "produces": [
  7170. "application/json"
  7171. ],
  7172. "tags": [
  7173. "repository"
  7174. ],
  7175. "summary": "Get languages and number of bytes of code written",
  7176. "operationId": "repoGetLanguages",
  7177. "parameters": [
  7178. {
  7179. "type": "string",
  7180. "description": "owner of the repo",
  7181. "name": "owner",
  7182. "in": "path",
  7183. "required": true
  7184. },
  7185. {
  7186. "type": "string",
  7187. "description": "name of the repo",
  7188. "name": "repo",
  7189. "in": "path",
  7190. "required": true
  7191. }
  7192. ],
  7193. "responses": {
  7194. "200": {
  7195. "$ref": "#/responses/LanguageStatistics"
  7196. },
  7197. "404": {
  7198. "$ref": "#/responses/notFound"
  7199. }
  7200. }
  7201. }
  7202. },
  7203. "/repos/{owner}/{repo}/media/{filepath}": {
  7204. "get": {
  7205. "tags": [
  7206. "repository"
  7207. ],
  7208. "summary": "Get a file or it's LFS object from a repository",
  7209. "operationId": "repoGetRawFileOrLFS",
  7210. "parameters": [
  7211. {
  7212. "type": "string",
  7213. "description": "owner of the repo",
  7214. "name": "owner",
  7215. "in": "path",
  7216. "required": true
  7217. },
  7218. {
  7219. "type": "string",
  7220. "description": "name of the repo",
  7221. "name": "repo",
  7222. "in": "path",
  7223. "required": true
  7224. },
  7225. {
  7226. "type": "string",
  7227. "description": "filepath of the file to get",
  7228. "name": "filepath",
  7229. "in": "path",
  7230. "required": true
  7231. },
  7232. {
  7233. "type": "string",
  7234. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  7235. "name": "ref",
  7236. "in": "query"
  7237. }
  7238. ],
  7239. "responses": {
  7240. "200": {
  7241. "description": "Returns raw file content."
  7242. },
  7243. "404": {
  7244. "$ref": "#/responses/notFound"
  7245. }
  7246. }
  7247. }
  7248. },
  7249. "/repos/{owner}/{repo}/milestones": {
  7250. "get": {
  7251. "produces": [
  7252. "application/json"
  7253. ],
  7254. "tags": [
  7255. "issue"
  7256. ],
  7257. "summary": "Get all of a repository's opened milestones",
  7258. "operationId": "issueGetMilestonesList",
  7259. "parameters": [
  7260. {
  7261. "type": "string",
  7262. "description": "owner of the repo",
  7263. "name": "owner",
  7264. "in": "path",
  7265. "required": true
  7266. },
  7267. {
  7268. "type": "string",
  7269. "description": "name of the repo",
  7270. "name": "repo",
  7271. "in": "path",
  7272. "required": true
  7273. },
  7274. {
  7275. "type": "string",
  7276. "description": "Milestone state, Recognized values are open, closed and all. Defaults to \"open\"",
  7277. "name": "state",
  7278. "in": "query"
  7279. },
  7280. {
  7281. "type": "string",
  7282. "description": "filter by milestone name",
  7283. "name": "name",
  7284. "in": "query"
  7285. },
  7286. {
  7287. "type": "integer",
  7288. "description": "page number of results to return (1-based)",
  7289. "name": "page",
  7290. "in": "query"
  7291. },
  7292. {
  7293. "type": "integer",
  7294. "description": "page size of results",
  7295. "name": "limit",
  7296. "in": "query"
  7297. }
  7298. ],
  7299. "responses": {
  7300. "200": {
  7301. "$ref": "#/responses/MilestoneList"
  7302. }
  7303. }
  7304. },
  7305. "post": {
  7306. "consumes": [
  7307. "application/json"
  7308. ],
  7309. "produces": [
  7310. "application/json"
  7311. ],
  7312. "tags": [
  7313. "issue"
  7314. ],
  7315. "summary": "Create a milestone",
  7316. "operationId": "issueCreateMilestone",
  7317. "parameters": [
  7318. {
  7319. "type": "string",
  7320. "description": "owner of the repo",
  7321. "name": "owner",
  7322. "in": "path",
  7323. "required": true
  7324. },
  7325. {
  7326. "type": "string",
  7327. "description": "name of the repo",
  7328. "name": "repo",
  7329. "in": "path",
  7330. "required": true
  7331. },
  7332. {
  7333. "name": "body",
  7334. "in": "body",
  7335. "schema": {
  7336. "$ref": "#/definitions/CreateMilestoneOption"
  7337. }
  7338. }
  7339. ],
  7340. "responses": {
  7341. "201": {
  7342. "$ref": "#/responses/Milestone"
  7343. }
  7344. }
  7345. }
  7346. },
  7347. "/repos/{owner}/{repo}/milestones/{id}": {
  7348. "get": {
  7349. "produces": [
  7350. "application/json"
  7351. ],
  7352. "tags": [
  7353. "issue"
  7354. ],
  7355. "summary": "Get a milestone",
  7356. "operationId": "issueGetMilestone",
  7357. "parameters": [
  7358. {
  7359. "type": "string",
  7360. "description": "owner of the repo",
  7361. "name": "owner",
  7362. "in": "path",
  7363. "required": true
  7364. },
  7365. {
  7366. "type": "string",
  7367. "description": "name of the repo",
  7368. "name": "repo",
  7369. "in": "path",
  7370. "required": true
  7371. },
  7372. {
  7373. "type": "string",
  7374. "description": "the milestone to get, identified by ID and if not available by name",
  7375. "name": "id",
  7376. "in": "path",
  7377. "required": true
  7378. }
  7379. ],
  7380. "responses": {
  7381. "200": {
  7382. "$ref": "#/responses/Milestone"
  7383. }
  7384. }
  7385. },
  7386. "delete": {
  7387. "tags": [
  7388. "issue"
  7389. ],
  7390. "summary": "Delete a milestone",
  7391. "operationId": "issueDeleteMilestone",
  7392. "parameters": [
  7393. {
  7394. "type": "string",
  7395. "description": "owner of the repo",
  7396. "name": "owner",
  7397. "in": "path",
  7398. "required": true
  7399. },
  7400. {
  7401. "type": "string",
  7402. "description": "name of the repo",
  7403. "name": "repo",
  7404. "in": "path",
  7405. "required": true
  7406. },
  7407. {
  7408. "type": "string",
  7409. "description": "the milestone to delete, identified by ID and if not available by name",
  7410. "name": "id",
  7411. "in": "path",
  7412. "required": true
  7413. }
  7414. ],
  7415. "responses": {
  7416. "204": {
  7417. "$ref": "#/responses/empty"
  7418. }
  7419. }
  7420. },
  7421. "patch": {
  7422. "consumes": [
  7423. "application/json"
  7424. ],
  7425. "produces": [
  7426. "application/json"
  7427. ],
  7428. "tags": [
  7429. "issue"
  7430. ],
  7431. "summary": "Update a milestone",
  7432. "operationId": "issueEditMilestone",
  7433. "parameters": [
  7434. {
  7435. "type": "string",
  7436. "description": "owner of the repo",
  7437. "name": "owner",
  7438. "in": "path",
  7439. "required": true
  7440. },
  7441. {
  7442. "type": "string",
  7443. "description": "name of the repo",
  7444. "name": "repo",
  7445. "in": "path",
  7446. "required": true
  7447. },
  7448. {
  7449. "type": "string",
  7450. "description": "the milestone to edit, identified by ID and if not available by name",
  7451. "name": "id",
  7452. "in": "path",
  7453. "required": true
  7454. },
  7455. {
  7456. "name": "body",
  7457. "in": "body",
  7458. "schema": {
  7459. "$ref": "#/definitions/EditMilestoneOption"
  7460. }
  7461. }
  7462. ],
  7463. "responses": {
  7464. "200": {
  7465. "$ref": "#/responses/Milestone"
  7466. }
  7467. }
  7468. }
  7469. },
  7470. "/repos/{owner}/{repo}/mirror-sync": {
  7471. "post": {
  7472. "produces": [
  7473. "application/json"
  7474. ],
  7475. "tags": [
  7476. "repository"
  7477. ],
  7478. "summary": "Sync a mirrored repository",
  7479. "operationId": "repoMirrorSync",
  7480. "parameters": [
  7481. {
  7482. "type": "string",
  7483. "description": "owner of the repo to sync",
  7484. "name": "owner",
  7485. "in": "path",
  7486. "required": true
  7487. },
  7488. {
  7489. "type": "string",
  7490. "description": "name of the repo to sync",
  7491. "name": "repo",
  7492. "in": "path",
  7493. "required": true
  7494. }
  7495. ],
  7496. "responses": {
  7497. "200": {
  7498. "$ref": "#/responses/empty"
  7499. },
  7500. "403": {
  7501. "$ref": "#/responses/forbidden"
  7502. }
  7503. }
  7504. }
  7505. },
  7506. "/repos/{owner}/{repo}/notifications": {
  7507. "get": {
  7508. "consumes": [
  7509. "application/json"
  7510. ],
  7511. "produces": [
  7512. "application/json"
  7513. ],
  7514. "tags": [
  7515. "notification"
  7516. ],
  7517. "summary": "List users's notification threads on a specific repo",
  7518. "operationId": "notifyGetRepoList",
  7519. "parameters": [
  7520. {
  7521. "type": "string",
  7522. "description": "owner of the repo",
  7523. "name": "owner",
  7524. "in": "path",
  7525. "required": true
  7526. },
  7527. {
  7528. "type": "string",
  7529. "description": "name of the repo",
  7530. "name": "repo",
  7531. "in": "path",
  7532. "required": true
  7533. },
  7534. {
  7535. "type": "boolean",
  7536. "description": "If true, show notifications marked as read. Default value is false",
  7537. "name": "all",
  7538. "in": "query"
  7539. },
  7540. {
  7541. "type": "array",
  7542. "items": {
  7543. "type": "string"
  7544. },
  7545. "collectionFormat": "multi",
  7546. "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned",
  7547. "name": "status-types",
  7548. "in": "query"
  7549. },
  7550. {
  7551. "type": "array",
  7552. "items": {
  7553. "enum": [
  7554. "issue",
  7555. "pull",
  7556. "commit",
  7557. "repository"
  7558. ],
  7559. "type": "string"
  7560. },
  7561. "collectionFormat": "multi",
  7562. "description": "filter notifications by subject type",
  7563. "name": "subject-type",
  7564. "in": "query"
  7565. },
  7566. {
  7567. "type": "string",
  7568. "format": "date-time",
  7569. "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format",
  7570. "name": "since",
  7571. "in": "query"
  7572. },
  7573. {
  7574. "type": "string",
  7575. "format": "date-time",
  7576. "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format",
  7577. "name": "before",
  7578. "in": "query"
  7579. },
  7580. {
  7581. "type": "integer",
  7582. "description": "page number of results to return (1-based)",
  7583. "name": "page",
  7584. "in": "query"
  7585. },
  7586. {
  7587. "type": "integer",
  7588. "description": "page size of results",
  7589. "name": "limit",
  7590. "in": "query"
  7591. }
  7592. ],
  7593. "responses": {
  7594. "200": {
  7595. "$ref": "#/responses/NotificationThreadList"
  7596. }
  7597. }
  7598. },
  7599. "put": {
  7600. "consumes": [
  7601. "application/json"
  7602. ],
  7603. "produces": [
  7604. "application/json"
  7605. ],
  7606. "tags": [
  7607. "notification"
  7608. ],
  7609. "summary": "Mark notification threads as read, pinned or unread on a specific repo",
  7610. "operationId": "notifyReadRepoList",
  7611. "parameters": [
  7612. {
  7613. "type": "string",
  7614. "description": "owner of the repo",
  7615. "name": "owner",
  7616. "in": "path",
  7617. "required": true
  7618. },
  7619. {
  7620. "type": "string",
  7621. "description": "name of the repo",
  7622. "name": "repo",
  7623. "in": "path",
  7624. "required": true
  7625. },
  7626. {
  7627. "type": "string",
  7628. "description": "If true, mark all notifications on this repo. Default value is false",
  7629. "name": "all",
  7630. "in": "query"
  7631. },
  7632. {
  7633. "type": "array",
  7634. "items": {
  7635. "type": "string"
  7636. },
  7637. "collectionFormat": "multi",
  7638. "description": "Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.",
  7639. "name": "status-types",
  7640. "in": "query"
  7641. },
  7642. {
  7643. "type": "string",
  7644. "description": "Status to mark notifications as. Defaults to read.",
  7645. "name": "to-status",
  7646. "in": "query"
  7647. },
  7648. {
  7649. "type": "string",
  7650. "format": "date-time",
  7651. "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated.",
  7652. "name": "last_read_at",
  7653. "in": "query"
  7654. }
  7655. ],
  7656. "responses": {
  7657. "205": {
  7658. "$ref": "#/responses/NotificationThreadList"
  7659. }
  7660. }
  7661. }
  7662. },
  7663. "/repos/{owner}/{repo}/pulls": {
  7664. "get": {
  7665. "produces": [
  7666. "application/json"
  7667. ],
  7668. "tags": [
  7669. "repository"
  7670. ],
  7671. "summary": "List a repo's pull requests",
  7672. "operationId": "repoListPullRequests",
  7673. "parameters": [
  7674. {
  7675. "type": "string",
  7676. "description": "owner of the repo",
  7677. "name": "owner",
  7678. "in": "path",
  7679. "required": true
  7680. },
  7681. {
  7682. "type": "string",
  7683. "description": "name of the repo",
  7684. "name": "repo",
  7685. "in": "path",
  7686. "required": true
  7687. },
  7688. {
  7689. "enum": [
  7690. "closed",
  7691. "open",
  7692. "all"
  7693. ],
  7694. "type": "string",
  7695. "description": "State of pull request: open or closed (optional)",
  7696. "name": "state",
  7697. "in": "query"
  7698. },
  7699. {
  7700. "enum": [
  7701. "oldest",
  7702. "recentupdate",
  7703. "leastupdate",
  7704. "mostcomment",
  7705. "leastcomment",
  7706. "priority"
  7707. ],
  7708. "type": "string",
  7709. "description": "Type of sort",
  7710. "name": "sort",
  7711. "in": "query"
  7712. },
  7713. {
  7714. "type": "integer",
  7715. "format": "int64",
  7716. "description": "ID of the milestone",
  7717. "name": "milestone",
  7718. "in": "query"
  7719. },
  7720. {
  7721. "type": "array",
  7722. "items": {
  7723. "type": "integer",
  7724. "format": "int64"
  7725. },
  7726. "collectionFormat": "multi",
  7727. "description": "Label IDs",
  7728. "name": "labels",
  7729. "in": "query"
  7730. },
  7731. {
  7732. "type": "integer",
  7733. "description": "page number of results to return (1-based)",
  7734. "name": "page",
  7735. "in": "query"
  7736. },
  7737. {
  7738. "type": "integer",
  7739. "description": "page size of results",
  7740. "name": "limit",
  7741. "in": "query"
  7742. }
  7743. ],
  7744. "responses": {
  7745. "200": {
  7746. "$ref": "#/responses/PullRequestList"
  7747. }
  7748. }
  7749. },
  7750. "post": {
  7751. "consumes": [
  7752. "application/json"
  7753. ],
  7754. "produces": [
  7755. "application/json"
  7756. ],
  7757. "tags": [
  7758. "repository"
  7759. ],
  7760. "summary": "Create a pull request",
  7761. "operationId": "repoCreatePullRequest",
  7762. "parameters": [
  7763. {
  7764. "type": "string",
  7765. "description": "owner of the repo",
  7766. "name": "owner",
  7767. "in": "path",
  7768. "required": true
  7769. },
  7770. {
  7771. "type": "string",
  7772. "description": "name of the repo",
  7773. "name": "repo",
  7774. "in": "path",
  7775. "required": true
  7776. },
  7777. {
  7778. "name": "body",
  7779. "in": "body",
  7780. "schema": {
  7781. "$ref": "#/definitions/CreatePullRequestOption"
  7782. }
  7783. }
  7784. ],
  7785. "responses": {
  7786. "201": {
  7787. "$ref": "#/responses/PullRequest"
  7788. },
  7789. "409": {
  7790. "$ref": "#/responses/error"
  7791. },
  7792. "422": {
  7793. "$ref": "#/responses/validationError"
  7794. }
  7795. }
  7796. }
  7797. },
  7798. "/repos/{owner}/{repo}/pulls/{index}": {
  7799. "get": {
  7800. "produces": [
  7801. "application/json"
  7802. ],
  7803. "tags": [
  7804. "repository"
  7805. ],
  7806. "summary": "Get a pull request",
  7807. "operationId": "repoGetPullRequest",
  7808. "parameters": [
  7809. {
  7810. "type": "string",
  7811. "description": "owner of the repo",
  7812. "name": "owner",
  7813. "in": "path",
  7814. "required": true
  7815. },
  7816. {
  7817. "type": "string",
  7818. "description": "name of the repo",
  7819. "name": "repo",
  7820. "in": "path",
  7821. "required": true
  7822. },
  7823. {
  7824. "type": "integer",
  7825. "format": "int64",
  7826. "description": "index of the pull request to get",
  7827. "name": "index",
  7828. "in": "path",
  7829. "required": true
  7830. }
  7831. ],
  7832. "responses": {
  7833. "200": {
  7834. "$ref": "#/responses/PullRequest"
  7835. },
  7836. "404": {
  7837. "$ref": "#/responses/notFound"
  7838. }
  7839. }
  7840. },
  7841. "patch": {
  7842. "consumes": [
  7843. "application/json"
  7844. ],
  7845. "produces": [
  7846. "application/json"
  7847. ],
  7848. "tags": [
  7849. "repository"
  7850. ],
  7851. "summary": "Update a pull request. If using deadline only the date will be taken into account, and time of day ignored.",
  7852. "operationId": "repoEditPullRequest",
  7853. "parameters": [
  7854. {
  7855. "type": "string",
  7856. "description": "owner of the repo",
  7857. "name": "owner",
  7858. "in": "path",
  7859. "required": true
  7860. },
  7861. {
  7862. "type": "string",
  7863. "description": "name of the repo",
  7864. "name": "repo",
  7865. "in": "path",
  7866. "required": true
  7867. },
  7868. {
  7869. "type": "integer",
  7870. "format": "int64",
  7871. "description": "index of the pull request to edit",
  7872. "name": "index",
  7873. "in": "path",
  7874. "required": true
  7875. },
  7876. {
  7877. "name": "body",
  7878. "in": "body",
  7879. "schema": {
  7880. "$ref": "#/definitions/EditPullRequestOption"
  7881. }
  7882. }
  7883. ],
  7884. "responses": {
  7885. "201": {
  7886. "$ref": "#/responses/PullRequest"
  7887. },
  7888. "403": {
  7889. "$ref": "#/responses/forbidden"
  7890. },
  7891. "409": {
  7892. "$ref": "#/responses/error"
  7893. },
  7894. "412": {
  7895. "$ref": "#/responses/error"
  7896. },
  7897. "422": {
  7898. "$ref": "#/responses/validationError"
  7899. }
  7900. }
  7901. }
  7902. },
  7903. "/repos/{owner}/{repo}/pulls/{index}.{diffType}": {
  7904. "get": {
  7905. "produces": [
  7906. "text/plain"
  7907. ],
  7908. "tags": [
  7909. "repository"
  7910. ],
  7911. "summary": "Get a pull request diff or patch",
  7912. "operationId": "repoDownloadPullDiffOrPatch",
  7913. "parameters": [
  7914. {
  7915. "type": "string",
  7916. "description": "owner of the repo",
  7917. "name": "owner",
  7918. "in": "path",
  7919. "required": true
  7920. },
  7921. {
  7922. "type": "string",
  7923. "description": "name of the repo",
  7924. "name": "repo",
  7925. "in": "path",
  7926. "required": true
  7927. },
  7928. {
  7929. "type": "integer",
  7930. "format": "int64",
  7931. "description": "index of the pull request to get",
  7932. "name": "index",
  7933. "in": "path",
  7934. "required": true
  7935. },
  7936. {
  7937. "enum": [
  7938. "diff",
  7939. "patch"
  7940. ],
  7941. "type": "string",
  7942. "description": "whether the output is diff or patch",
  7943. "name": "diffType",
  7944. "in": "path",
  7945. "required": true
  7946. },
  7947. {
  7948. "type": "boolean",
  7949. "description": "whether to include binary file changes. if true, the diff is applicable with `git apply`",
  7950. "name": "binary",
  7951. "in": "query"
  7952. }
  7953. ],
  7954. "responses": {
  7955. "200": {
  7956. "$ref": "#/responses/string"
  7957. },
  7958. "404": {
  7959. "$ref": "#/responses/notFound"
  7960. }
  7961. }
  7962. }
  7963. },
  7964. "/repos/{owner}/{repo}/pulls/{index}/commits": {
  7965. "get": {
  7966. "produces": [
  7967. "application/json"
  7968. ],
  7969. "tags": [
  7970. "repository"
  7971. ],
  7972. "summary": "Get commits for a pull request",
  7973. "operationId": "repoGetPullRequestCommits",
  7974. "parameters": [
  7975. {
  7976. "type": "string",
  7977. "description": "owner of the repo",
  7978. "name": "owner",
  7979. "in": "path",
  7980. "required": true
  7981. },
  7982. {
  7983. "type": "string",
  7984. "description": "name of the repo",
  7985. "name": "repo",
  7986. "in": "path",
  7987. "required": true
  7988. },
  7989. {
  7990. "type": "integer",
  7991. "format": "int64",
  7992. "description": "index of the pull request to get",
  7993. "name": "index",
  7994. "in": "path",
  7995. "required": true
  7996. },
  7997. {
  7998. "type": "integer",
  7999. "description": "page number of results to return (1-based)",
  8000. "name": "page",
  8001. "in": "query"
  8002. },
  8003. {
  8004. "type": "integer",
  8005. "description": "page size of results",
  8006. "name": "limit",
  8007. "in": "query"
  8008. }
  8009. ],
  8010. "responses": {
  8011. "200": {
  8012. "$ref": "#/responses/CommitList"
  8013. },
  8014. "404": {
  8015. "$ref": "#/responses/notFound"
  8016. }
  8017. }
  8018. }
  8019. },
  8020. "/repos/{owner}/{repo}/pulls/{index}/merge": {
  8021. "get": {
  8022. "produces": [
  8023. "application/json"
  8024. ],
  8025. "tags": [
  8026. "repository"
  8027. ],
  8028. "summary": "Check if a pull request has been merged",
  8029. "operationId": "repoPullRequestIsMerged",
  8030. "parameters": [
  8031. {
  8032. "type": "string",
  8033. "description": "owner of the repo",
  8034. "name": "owner",
  8035. "in": "path",
  8036. "required": true
  8037. },
  8038. {
  8039. "type": "string",
  8040. "description": "name of the repo",
  8041. "name": "repo",
  8042. "in": "path",
  8043. "required": true
  8044. },
  8045. {
  8046. "type": "integer",
  8047. "format": "int64",
  8048. "description": "index of the pull request",
  8049. "name": "index",
  8050. "in": "path",
  8051. "required": true
  8052. }
  8053. ],
  8054. "responses": {
  8055. "204": {
  8056. "description": "pull request has been merged"
  8057. },
  8058. "404": {
  8059. "description": "pull request has not been merged"
  8060. }
  8061. }
  8062. },
  8063. "post": {
  8064. "produces": [
  8065. "application/json"
  8066. ],
  8067. "tags": [
  8068. "repository"
  8069. ],
  8070. "summary": "Merge a pull request",
  8071. "operationId": "repoMergePullRequest",
  8072. "parameters": [
  8073. {
  8074. "type": "string",
  8075. "description": "owner of the repo",
  8076. "name": "owner",
  8077. "in": "path",
  8078. "required": true
  8079. },
  8080. {
  8081. "type": "string",
  8082. "description": "name of the repo",
  8083. "name": "repo",
  8084. "in": "path",
  8085. "required": true
  8086. },
  8087. {
  8088. "type": "integer",
  8089. "format": "int64",
  8090. "description": "index of the pull request to merge",
  8091. "name": "index",
  8092. "in": "path",
  8093. "required": true
  8094. },
  8095. {
  8096. "name": "body",
  8097. "in": "body",
  8098. "schema": {
  8099. "$ref": "#/definitions/MergePullRequestOption"
  8100. }
  8101. }
  8102. ],
  8103. "responses": {
  8104. "200": {
  8105. "$ref": "#/responses/empty"
  8106. },
  8107. "405": {
  8108. "$ref": "#/responses/empty"
  8109. },
  8110. "409": {
  8111. "$ref": "#/responses/error"
  8112. }
  8113. }
  8114. },
  8115. "delete": {
  8116. "produces": [
  8117. "application/json"
  8118. ],
  8119. "tags": [
  8120. "repository"
  8121. ],
  8122. "summary": "Cancel the scheduled auto merge for the given pull request",
  8123. "operationId": "repoCancelScheduledAutoMerge",
  8124. "parameters": [
  8125. {
  8126. "type": "string",
  8127. "description": "owner of the repo",
  8128. "name": "owner",
  8129. "in": "path",
  8130. "required": true
  8131. },
  8132. {
  8133. "type": "string",
  8134. "description": "name of the repo",
  8135. "name": "repo",
  8136. "in": "path",
  8137. "required": true
  8138. },
  8139. {
  8140. "type": "integer",
  8141. "format": "int64",
  8142. "description": "index of the pull request to merge",
  8143. "name": "index",
  8144. "in": "path",
  8145. "required": true
  8146. }
  8147. ],
  8148. "responses": {
  8149. "204": {
  8150. "$ref": "#/responses/empty"
  8151. },
  8152. "403": {
  8153. "$ref": "#/responses/forbidden"
  8154. },
  8155. "404": {
  8156. "$ref": "#/responses/notFound"
  8157. }
  8158. }
  8159. }
  8160. },
  8161. "/repos/{owner}/{repo}/pulls/{index}/requested_reviewers": {
  8162. "post": {
  8163. "produces": [
  8164. "application/json"
  8165. ],
  8166. "tags": [
  8167. "repository"
  8168. ],
  8169. "summary": "create review requests for a pull request",
  8170. "operationId": "repoCreatePullReviewRequests",
  8171. "parameters": [
  8172. {
  8173. "type": "string",
  8174. "description": "owner of the repo",
  8175. "name": "owner",
  8176. "in": "path",
  8177. "required": true
  8178. },
  8179. {
  8180. "type": "string",
  8181. "description": "name of the repo",
  8182. "name": "repo",
  8183. "in": "path",
  8184. "required": true
  8185. },
  8186. {
  8187. "type": "integer",
  8188. "format": "int64",
  8189. "description": "index of the pull request",
  8190. "name": "index",
  8191. "in": "path",
  8192. "required": true
  8193. },
  8194. {
  8195. "name": "body",
  8196. "in": "body",
  8197. "required": true,
  8198. "schema": {
  8199. "$ref": "#/definitions/PullReviewRequestOptions"
  8200. }
  8201. }
  8202. ],
  8203. "responses": {
  8204. "201": {
  8205. "$ref": "#/responses/PullReviewList"
  8206. },
  8207. "404": {
  8208. "$ref": "#/responses/notFound"
  8209. },
  8210. "422": {
  8211. "$ref": "#/responses/validationError"
  8212. }
  8213. }
  8214. },
  8215. "delete": {
  8216. "produces": [
  8217. "application/json"
  8218. ],
  8219. "tags": [
  8220. "repository"
  8221. ],
  8222. "summary": "cancel review requests for a pull request",
  8223. "operationId": "repoDeletePullReviewRequests",
  8224. "parameters": [
  8225. {
  8226. "type": "string",
  8227. "description": "owner of the repo",
  8228. "name": "owner",
  8229. "in": "path",
  8230. "required": true
  8231. },
  8232. {
  8233. "type": "string",
  8234. "description": "name of the repo",
  8235. "name": "repo",
  8236. "in": "path",
  8237. "required": true
  8238. },
  8239. {
  8240. "type": "integer",
  8241. "format": "int64",
  8242. "description": "index of the pull request",
  8243. "name": "index",
  8244. "in": "path",
  8245. "required": true
  8246. },
  8247. {
  8248. "name": "body",
  8249. "in": "body",
  8250. "required": true,
  8251. "schema": {
  8252. "$ref": "#/definitions/PullReviewRequestOptions"
  8253. }
  8254. }
  8255. ],
  8256. "responses": {
  8257. "204": {
  8258. "$ref": "#/responses/empty"
  8259. },
  8260. "404": {
  8261. "$ref": "#/responses/notFound"
  8262. },
  8263. "422": {
  8264. "$ref": "#/responses/validationError"
  8265. }
  8266. }
  8267. }
  8268. },
  8269. "/repos/{owner}/{repo}/pulls/{index}/reviews": {
  8270. "get": {
  8271. "produces": [
  8272. "application/json"
  8273. ],
  8274. "tags": [
  8275. "repository"
  8276. ],
  8277. "summary": "List all reviews for a pull request",
  8278. "operationId": "repoListPullReviews",
  8279. "parameters": [
  8280. {
  8281. "type": "string",
  8282. "description": "owner of the repo",
  8283. "name": "owner",
  8284. "in": "path",
  8285. "required": true
  8286. },
  8287. {
  8288. "type": "string",
  8289. "description": "name of the repo",
  8290. "name": "repo",
  8291. "in": "path",
  8292. "required": true
  8293. },
  8294. {
  8295. "type": "integer",
  8296. "format": "int64",
  8297. "description": "index of the pull request",
  8298. "name": "index",
  8299. "in": "path",
  8300. "required": true
  8301. },
  8302. {
  8303. "type": "integer",
  8304. "description": "page number of results to return (1-based)",
  8305. "name": "page",
  8306. "in": "query"
  8307. },
  8308. {
  8309. "type": "integer",
  8310. "description": "page size of results",
  8311. "name": "limit",
  8312. "in": "query"
  8313. }
  8314. ],
  8315. "responses": {
  8316. "200": {
  8317. "$ref": "#/responses/PullReviewList"
  8318. },
  8319. "404": {
  8320. "$ref": "#/responses/notFound"
  8321. }
  8322. }
  8323. },
  8324. "post": {
  8325. "produces": [
  8326. "application/json"
  8327. ],
  8328. "tags": [
  8329. "repository"
  8330. ],
  8331. "summary": "Create a review to an pull request",
  8332. "operationId": "repoCreatePullReview",
  8333. "parameters": [
  8334. {
  8335. "type": "string",
  8336. "description": "owner of the repo",
  8337. "name": "owner",
  8338. "in": "path",
  8339. "required": true
  8340. },
  8341. {
  8342. "type": "string",
  8343. "description": "name of the repo",
  8344. "name": "repo",
  8345. "in": "path",
  8346. "required": true
  8347. },
  8348. {
  8349. "type": "integer",
  8350. "format": "int64",
  8351. "description": "index of the pull request",
  8352. "name": "index",
  8353. "in": "path",
  8354. "required": true
  8355. },
  8356. {
  8357. "name": "body",
  8358. "in": "body",
  8359. "required": true,
  8360. "schema": {
  8361. "$ref": "#/definitions/CreatePullReviewOptions"
  8362. }
  8363. }
  8364. ],
  8365. "responses": {
  8366. "200": {
  8367. "$ref": "#/responses/PullReview"
  8368. },
  8369. "404": {
  8370. "$ref": "#/responses/notFound"
  8371. },
  8372. "422": {
  8373. "$ref": "#/responses/validationError"
  8374. }
  8375. }
  8376. }
  8377. },
  8378. "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}": {
  8379. "get": {
  8380. "produces": [
  8381. "application/json"
  8382. ],
  8383. "tags": [
  8384. "repository"
  8385. ],
  8386. "summary": "Get a specific review for a pull request",
  8387. "operationId": "repoGetPullReview",
  8388. "parameters": [
  8389. {
  8390. "type": "string",
  8391. "description": "owner of the repo",
  8392. "name": "owner",
  8393. "in": "path",
  8394. "required": true
  8395. },
  8396. {
  8397. "type": "string",
  8398. "description": "name of the repo",
  8399. "name": "repo",
  8400. "in": "path",
  8401. "required": true
  8402. },
  8403. {
  8404. "type": "integer",
  8405. "format": "int64",
  8406. "description": "index of the pull request",
  8407. "name": "index",
  8408. "in": "path",
  8409. "required": true
  8410. },
  8411. {
  8412. "type": "integer",
  8413. "format": "int64",
  8414. "description": "id of the review",
  8415. "name": "id",
  8416. "in": "path",
  8417. "required": true
  8418. }
  8419. ],
  8420. "responses": {
  8421. "200": {
  8422. "$ref": "#/responses/PullReview"
  8423. },
  8424. "404": {
  8425. "$ref": "#/responses/notFound"
  8426. }
  8427. }
  8428. },
  8429. "post": {
  8430. "produces": [
  8431. "application/json"
  8432. ],
  8433. "tags": [
  8434. "repository"
  8435. ],
  8436. "summary": "Submit a pending review to an pull request",
  8437. "operationId": "repoSubmitPullReview",
  8438. "parameters": [
  8439. {
  8440. "type": "string",
  8441. "description": "owner of the repo",
  8442. "name": "owner",
  8443. "in": "path",
  8444. "required": true
  8445. },
  8446. {
  8447. "type": "string",
  8448. "description": "name of the repo",
  8449. "name": "repo",
  8450. "in": "path",
  8451. "required": true
  8452. },
  8453. {
  8454. "type": "integer",
  8455. "format": "int64",
  8456. "description": "index of the pull request",
  8457. "name": "index",
  8458. "in": "path",
  8459. "required": true
  8460. },
  8461. {
  8462. "type": "integer",
  8463. "format": "int64",
  8464. "description": "id of the review",
  8465. "name": "id",
  8466. "in": "path",
  8467. "required": true
  8468. },
  8469. {
  8470. "name": "body",
  8471. "in": "body",
  8472. "required": true,
  8473. "schema": {
  8474. "$ref": "#/definitions/SubmitPullReviewOptions"
  8475. }
  8476. }
  8477. ],
  8478. "responses": {
  8479. "200": {
  8480. "$ref": "#/responses/PullReview"
  8481. },
  8482. "404": {
  8483. "$ref": "#/responses/notFound"
  8484. },
  8485. "422": {
  8486. "$ref": "#/responses/validationError"
  8487. }
  8488. }
  8489. },
  8490. "delete": {
  8491. "produces": [
  8492. "application/json"
  8493. ],
  8494. "tags": [
  8495. "repository"
  8496. ],
  8497. "summary": "Delete a specific review from a pull request",
  8498. "operationId": "repoDeletePullReview",
  8499. "parameters": [
  8500. {
  8501. "type": "string",
  8502. "description": "owner of the repo",
  8503. "name": "owner",
  8504. "in": "path",
  8505. "required": true
  8506. },
  8507. {
  8508. "type": "string",
  8509. "description": "name of the repo",
  8510. "name": "repo",
  8511. "in": "path",
  8512. "required": true
  8513. },
  8514. {
  8515. "type": "integer",
  8516. "format": "int64",
  8517. "description": "index of the pull request",
  8518. "name": "index",
  8519. "in": "path",
  8520. "required": true
  8521. },
  8522. {
  8523. "type": "integer",
  8524. "format": "int64",
  8525. "description": "id of the review",
  8526. "name": "id",
  8527. "in": "path",
  8528. "required": true
  8529. }
  8530. ],
  8531. "responses": {
  8532. "204": {
  8533. "$ref": "#/responses/empty"
  8534. },
  8535. "403": {
  8536. "$ref": "#/responses/forbidden"
  8537. },
  8538. "404": {
  8539. "$ref": "#/responses/notFound"
  8540. }
  8541. }
  8542. }
  8543. },
  8544. "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments": {
  8545. "get": {
  8546. "produces": [
  8547. "application/json"
  8548. ],
  8549. "tags": [
  8550. "repository"
  8551. ],
  8552. "summary": "Get a specific review for a pull request",
  8553. "operationId": "repoGetPullReviewComments",
  8554. "parameters": [
  8555. {
  8556. "type": "string",
  8557. "description": "owner of the repo",
  8558. "name": "owner",
  8559. "in": "path",
  8560. "required": true
  8561. },
  8562. {
  8563. "type": "string",
  8564. "description": "name of the repo",
  8565. "name": "repo",
  8566. "in": "path",
  8567. "required": true
  8568. },
  8569. {
  8570. "type": "integer",
  8571. "format": "int64",
  8572. "description": "index of the pull request",
  8573. "name": "index",
  8574. "in": "path",
  8575. "required": true
  8576. },
  8577. {
  8578. "type": "integer",
  8579. "format": "int64",
  8580. "description": "id of the review",
  8581. "name": "id",
  8582. "in": "path",
  8583. "required": true
  8584. }
  8585. ],
  8586. "responses": {
  8587. "200": {
  8588. "$ref": "#/responses/PullReviewCommentList"
  8589. },
  8590. "404": {
  8591. "$ref": "#/responses/notFound"
  8592. }
  8593. }
  8594. }
  8595. },
  8596. "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals": {
  8597. "post": {
  8598. "produces": [
  8599. "application/json"
  8600. ],
  8601. "tags": [
  8602. "repository"
  8603. ],
  8604. "summary": "Dismiss a review for a pull request",
  8605. "operationId": "repoDismissPullReview",
  8606. "parameters": [
  8607. {
  8608. "type": "string",
  8609. "description": "owner of the repo",
  8610. "name": "owner",
  8611. "in": "path",
  8612. "required": true
  8613. },
  8614. {
  8615. "type": "string",
  8616. "description": "name of the repo",
  8617. "name": "repo",
  8618. "in": "path",
  8619. "required": true
  8620. },
  8621. {
  8622. "type": "integer",
  8623. "format": "int64",
  8624. "description": "index of the pull request",
  8625. "name": "index",
  8626. "in": "path",
  8627. "required": true
  8628. },
  8629. {
  8630. "type": "integer",
  8631. "format": "int64",
  8632. "description": "id of the review",
  8633. "name": "id",
  8634. "in": "path",
  8635. "required": true
  8636. },
  8637. {
  8638. "name": "body",
  8639. "in": "body",
  8640. "required": true,
  8641. "schema": {
  8642. "$ref": "#/definitions/DismissPullReviewOptions"
  8643. }
  8644. }
  8645. ],
  8646. "responses": {
  8647. "200": {
  8648. "$ref": "#/responses/PullReview"
  8649. },
  8650. "403": {
  8651. "$ref": "#/responses/forbidden"
  8652. },
  8653. "422": {
  8654. "$ref": "#/responses/validationError"
  8655. }
  8656. }
  8657. }
  8658. },
  8659. "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals": {
  8660. "post": {
  8661. "produces": [
  8662. "application/json"
  8663. ],
  8664. "tags": [
  8665. "repository"
  8666. ],
  8667. "summary": "Cancel to dismiss a review for a pull request",
  8668. "operationId": "repoUnDismissPullReview",
  8669. "parameters": [
  8670. {
  8671. "type": "string",
  8672. "description": "owner of the repo",
  8673. "name": "owner",
  8674. "in": "path",
  8675. "required": true
  8676. },
  8677. {
  8678. "type": "string",
  8679. "description": "name of the repo",
  8680. "name": "repo",
  8681. "in": "path",
  8682. "required": true
  8683. },
  8684. {
  8685. "type": "integer",
  8686. "format": "int64",
  8687. "description": "index of the pull request",
  8688. "name": "index",
  8689. "in": "path",
  8690. "required": true
  8691. },
  8692. {
  8693. "type": "integer",
  8694. "format": "int64",
  8695. "description": "id of the review",
  8696. "name": "id",
  8697. "in": "path",
  8698. "required": true
  8699. }
  8700. ],
  8701. "responses": {
  8702. "200": {
  8703. "$ref": "#/responses/PullReview"
  8704. },
  8705. "403": {
  8706. "$ref": "#/responses/forbidden"
  8707. },
  8708. "422": {
  8709. "$ref": "#/responses/validationError"
  8710. }
  8711. }
  8712. }
  8713. },
  8714. "/repos/{owner}/{repo}/pulls/{index}/update": {
  8715. "post": {
  8716. "produces": [
  8717. "application/json"
  8718. ],
  8719. "tags": [
  8720. "repository"
  8721. ],
  8722. "summary": "Merge PR's baseBranch into headBranch",
  8723. "operationId": "repoUpdatePullRequest",
  8724. "parameters": [
  8725. {
  8726. "type": "string",
  8727. "description": "owner of the repo",
  8728. "name": "owner",
  8729. "in": "path",
  8730. "required": true
  8731. },
  8732. {
  8733. "type": "string",
  8734. "description": "name of the repo",
  8735. "name": "repo",
  8736. "in": "path",
  8737. "required": true
  8738. },
  8739. {
  8740. "type": "integer",
  8741. "format": "int64",
  8742. "description": "index of the pull request to get",
  8743. "name": "index",
  8744. "in": "path",
  8745. "required": true
  8746. },
  8747. {
  8748. "enum": [
  8749. "merge",
  8750. "rebase"
  8751. ],
  8752. "type": "string",
  8753. "description": "how to update pull request",
  8754. "name": "style",
  8755. "in": "query"
  8756. }
  8757. ],
  8758. "responses": {
  8759. "200": {
  8760. "$ref": "#/responses/empty"
  8761. },
  8762. "403": {
  8763. "$ref": "#/responses/forbidden"
  8764. },
  8765. "404": {
  8766. "$ref": "#/responses/notFound"
  8767. },
  8768. "409": {
  8769. "$ref": "#/responses/error"
  8770. },
  8771. "422": {
  8772. "$ref": "#/responses/validationError"
  8773. }
  8774. }
  8775. }
  8776. },
  8777. "/repos/{owner}/{repo}/raw/{filepath}": {
  8778. "get": {
  8779. "produces": [
  8780. "application/json"
  8781. ],
  8782. "tags": [
  8783. "repository"
  8784. ],
  8785. "summary": "Get a file from a repository",
  8786. "operationId": "repoGetRawFile",
  8787. "parameters": [
  8788. {
  8789. "type": "string",
  8790. "description": "owner of the repo",
  8791. "name": "owner",
  8792. "in": "path",
  8793. "required": true
  8794. },
  8795. {
  8796. "type": "string",
  8797. "description": "name of the repo",
  8798. "name": "repo",
  8799. "in": "path",
  8800. "required": true
  8801. },
  8802. {
  8803. "type": "string",
  8804. "description": "filepath of the file to get",
  8805. "name": "filepath",
  8806. "in": "path",
  8807. "required": true
  8808. },
  8809. {
  8810. "type": "string",
  8811. "description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
  8812. "name": "ref",
  8813. "in": "query"
  8814. }
  8815. ],
  8816. "responses": {
  8817. "200": {
  8818. "description": "Returns raw file content."
  8819. },
  8820. "404": {
  8821. "$ref": "#/responses/notFound"
  8822. }
  8823. }
  8824. }
  8825. },
  8826. "/repos/{owner}/{repo}/releases": {
  8827. "get": {
  8828. "produces": [
  8829. "application/json"
  8830. ],
  8831. "tags": [
  8832. "repository"
  8833. ],
  8834. "summary": "List a repo's releases",
  8835. "operationId": "repoListReleases",
  8836. "parameters": [
  8837. {
  8838. "type": "string",
  8839. "description": "owner of the repo",
  8840. "name": "owner",
  8841. "in": "path",
  8842. "required": true
  8843. },
  8844. {
  8845. "type": "string",
  8846. "description": "name of the repo",
  8847. "name": "repo",
  8848. "in": "path",
  8849. "required": true
  8850. },
  8851. {
  8852. "type": "boolean",
  8853. "description": "filter (exclude / include) drafts, if you dont have repo write access none will show",
  8854. "name": "draft",
  8855. "in": "query"
  8856. },
  8857. {
  8858. "type": "boolean",
  8859. "description": "filter (exclude / include) pre-releases",
  8860. "name": "pre-release",
  8861. "in": "query"
  8862. },
  8863. {
  8864. "type": "integer",
  8865. "description": "page size of results, deprecated - use limit",
  8866. "name": "per_page",
  8867. "in": "query"
  8868. },
  8869. {
  8870. "type": "integer",
  8871. "description": "page number of results to return (1-based)",
  8872. "name": "page",
  8873. "in": "query"
  8874. },
  8875. {
  8876. "type": "integer",
  8877. "description": "page size of results",
  8878. "name": "limit",
  8879. "in": "query"
  8880. }
  8881. ],
  8882. "responses": {
  8883. "200": {
  8884. "$ref": "#/responses/ReleaseList"
  8885. }
  8886. }
  8887. },
  8888. "post": {
  8889. "consumes": [
  8890. "application/json"
  8891. ],
  8892. "produces": [
  8893. "application/json"
  8894. ],
  8895. "tags": [
  8896. "repository"
  8897. ],
  8898. "summary": "Create a release",
  8899. "operationId": "repoCreateRelease",
  8900. "parameters": [
  8901. {
  8902. "type": "string",
  8903. "description": "owner of the repo",
  8904. "name": "owner",
  8905. "in": "path",
  8906. "required": true
  8907. },
  8908. {
  8909. "type": "string",
  8910. "description": "name of the repo",
  8911. "name": "repo",
  8912. "in": "path",
  8913. "required": true
  8914. },
  8915. {
  8916. "name": "body",
  8917. "in": "body",
  8918. "schema": {
  8919. "$ref": "#/definitions/CreateReleaseOption"
  8920. }
  8921. }
  8922. ],
  8923. "responses": {
  8924. "201": {
  8925. "$ref": "#/responses/Release"
  8926. },
  8927. "404": {
  8928. "$ref": "#/responses/notFound"
  8929. },
  8930. "409": {
  8931. "$ref": "#/responses/error"
  8932. }
  8933. }
  8934. }
  8935. },
  8936. "/repos/{owner}/{repo}/releases/tags/{tag}": {
  8937. "get": {
  8938. "produces": [
  8939. "application/json"
  8940. ],
  8941. "tags": [
  8942. "repository"
  8943. ],
  8944. "summary": "Get a release by tag name",
  8945. "operationId": "repoGetReleaseByTag",
  8946. "parameters": [
  8947. {
  8948. "type": "string",
  8949. "description": "owner of the repo",
  8950. "name": "owner",
  8951. "in": "path",
  8952. "required": true
  8953. },
  8954. {
  8955. "type": "string",
  8956. "description": "name of the repo",
  8957. "name": "repo",
  8958. "in": "path",
  8959. "required": true
  8960. },
  8961. {
  8962. "type": "string",
  8963. "description": "tag name of the release to get",
  8964. "name": "tag",
  8965. "in": "path",
  8966. "required": true
  8967. }
  8968. ],
  8969. "responses": {
  8970. "200": {
  8971. "$ref": "#/responses/Release"
  8972. },
  8973. "404": {
  8974. "$ref": "#/responses/notFound"
  8975. }
  8976. }
  8977. },
  8978. "delete": {
  8979. "tags": [
  8980. "repository"
  8981. ],
  8982. "summary": "Delete a release by tag name",
  8983. "operationId": "repoDeleteReleaseByTag",
  8984. "parameters": [
  8985. {
  8986. "type": "string",
  8987. "description": "owner of the repo",
  8988. "name": "owner",
  8989. "in": "path",
  8990. "required": true
  8991. },
  8992. {
  8993. "type": "string",
  8994. "description": "name of the repo",
  8995. "name": "repo",
  8996. "in": "path",
  8997. "required": true
  8998. },
  8999. {
  9000. "type": "string",
  9001. "description": "tag name of the release to delete",
  9002. "name": "tag",
  9003. "in": "path",
  9004. "required": true
  9005. }
  9006. ],
  9007. "responses": {
  9008. "204": {
  9009. "$ref": "#/responses/empty"
  9010. },
  9011. "404": {
  9012. "$ref": "#/responses/notFound"
  9013. },
  9014. "405": {
  9015. "$ref": "#/responses/empty"
  9016. }
  9017. }
  9018. }
  9019. },
  9020. "/repos/{owner}/{repo}/releases/{id}": {
  9021. "get": {
  9022. "produces": [
  9023. "application/json"
  9024. ],
  9025. "tags": [
  9026. "repository"
  9027. ],
  9028. "summary": "Get a release",
  9029. "operationId": "repoGetRelease",
  9030. "parameters": [
  9031. {
  9032. "type": "string",
  9033. "description": "owner of the repo",
  9034. "name": "owner",
  9035. "in": "path",
  9036. "required": true
  9037. },
  9038. {
  9039. "type": "string",
  9040. "description": "name of the repo",
  9041. "name": "repo",
  9042. "in": "path",
  9043. "required": true
  9044. },
  9045. {
  9046. "type": "integer",
  9047. "format": "int64",
  9048. "description": "id of the release to get",
  9049. "name": "id",
  9050. "in": "path",
  9051. "required": true
  9052. }
  9053. ],
  9054. "responses": {
  9055. "200": {
  9056. "$ref": "#/responses/Release"
  9057. },
  9058. "404": {
  9059. "$ref": "#/responses/notFound"
  9060. }
  9061. }
  9062. },
  9063. "delete": {
  9064. "tags": [
  9065. "repository"
  9066. ],
  9067. "summary": "Delete a release",
  9068. "operationId": "repoDeleteRelease",
  9069. "parameters": [
  9070. {
  9071. "type": "string",
  9072. "description": "owner of the repo",
  9073. "name": "owner",
  9074. "in": "path",
  9075. "required": true
  9076. },
  9077. {
  9078. "type": "string",
  9079. "description": "name of the repo",
  9080. "name": "repo",
  9081. "in": "path",
  9082. "required": true
  9083. },
  9084. {
  9085. "type": "integer",
  9086. "format": "int64",
  9087. "description": "id of the release to delete",
  9088. "name": "id",
  9089. "in": "path",
  9090. "required": true
  9091. }
  9092. ],
  9093. "responses": {
  9094. "204": {
  9095. "$ref": "#/responses/empty"
  9096. },
  9097. "404": {
  9098. "$ref": "#/responses/notFound"
  9099. },
  9100. "405": {
  9101. "$ref": "#/responses/empty"
  9102. }
  9103. }
  9104. },
  9105. "patch": {
  9106. "consumes": [
  9107. "application/json"
  9108. ],
  9109. "produces": [
  9110. "application/json"
  9111. ],
  9112. "tags": [
  9113. "repository"
  9114. ],
  9115. "summary": "Update a release",
  9116. "operationId": "repoEditRelease",
  9117. "parameters": [
  9118. {
  9119. "type": "string",
  9120. "description": "owner of the repo",
  9121. "name": "owner",
  9122. "in": "path",
  9123. "required": true
  9124. },
  9125. {
  9126. "type": "string",
  9127. "description": "name of the repo",
  9128. "name": "repo",
  9129. "in": "path",
  9130. "required": true
  9131. },
  9132. {
  9133. "type": "integer",
  9134. "format": "int64",
  9135. "description": "id of the release to edit",
  9136. "name": "id",
  9137. "in": "path",
  9138. "required": true
  9139. },
  9140. {
  9141. "name": "body",
  9142. "in": "body",
  9143. "schema": {
  9144. "$ref": "#/definitions/EditReleaseOption"
  9145. }
  9146. }
  9147. ],
  9148. "responses": {
  9149. "200": {
  9150. "$ref": "#/responses/Release"
  9151. },
  9152. "404": {
  9153. "$ref": "#/responses/notFound"
  9154. }
  9155. }
  9156. }
  9157. },
  9158. "/repos/{owner}/{repo}/releases/{id}/assets": {
  9159. "get": {
  9160. "produces": [
  9161. "application/json"
  9162. ],
  9163. "tags": [
  9164. "repository"
  9165. ],
  9166. "summary": "List release's attachments",
  9167. "operationId": "repoListReleaseAttachments",
  9168. "parameters": [
  9169. {
  9170. "type": "string",
  9171. "description": "owner of the repo",
  9172. "name": "owner",
  9173. "in": "path",
  9174. "required": true
  9175. },
  9176. {
  9177. "type": "string",
  9178. "description": "name of the repo",
  9179. "name": "repo",
  9180. "in": "path",
  9181. "required": true
  9182. },
  9183. {
  9184. "type": "integer",
  9185. "format": "int64",
  9186. "description": "id of the release",
  9187. "name": "id",
  9188. "in": "path",
  9189. "required": true
  9190. }
  9191. ],
  9192. "responses": {
  9193. "200": {
  9194. "$ref": "#/responses/AttachmentList"
  9195. }
  9196. }
  9197. },
  9198. "post": {
  9199. "consumes": [
  9200. "multipart/form-data"
  9201. ],
  9202. "produces": [
  9203. "application/json"
  9204. ],
  9205. "tags": [
  9206. "repository"
  9207. ],
  9208. "summary": "Create a release attachment",
  9209. "operationId": "repoCreateReleaseAttachment",
  9210. "parameters": [
  9211. {
  9212. "type": "string",
  9213. "description": "owner of the repo",
  9214. "name": "owner",
  9215. "in": "path",
  9216. "required": true
  9217. },
  9218. {
  9219. "type": "string",
  9220. "description": "name of the repo",
  9221. "name": "repo",
  9222. "in": "path",
  9223. "required": true
  9224. },
  9225. {
  9226. "type": "integer",
  9227. "format": "int64",
  9228. "description": "id of the release",
  9229. "name": "id",
  9230. "in": "path",
  9231. "required": true
  9232. },
  9233. {
  9234. "type": "string",
  9235. "description": "name of the attachment",
  9236. "name": "name",
  9237. "in": "query"
  9238. },
  9239. {
  9240. "type": "file",
  9241. "description": "attachment to upload",
  9242. "name": "attachment",
  9243. "in": "formData",
  9244. "required": true
  9245. }
  9246. ],
  9247. "responses": {
  9248. "201": {
  9249. "$ref": "#/responses/Attachment"
  9250. },
  9251. "400": {
  9252. "$ref": "#/responses/error"
  9253. }
  9254. }
  9255. }
  9256. },
  9257. "/repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}": {
  9258. "get": {
  9259. "produces": [
  9260. "application/json"
  9261. ],
  9262. "tags": [
  9263. "repository"
  9264. ],
  9265. "summary": "Get a release attachment",
  9266. "operationId": "repoGetReleaseAttachment",
  9267. "parameters": [
  9268. {
  9269. "type": "string",
  9270. "description": "owner of the repo",
  9271. "name": "owner",
  9272. "in": "path",
  9273. "required": true
  9274. },
  9275. {
  9276. "type": "string",
  9277. "description": "name of the repo",
  9278. "name": "repo",
  9279. "in": "path",
  9280. "required": true
  9281. },
  9282. {
  9283. "type": "integer",
  9284. "format": "int64",
  9285. "description": "id of the release",
  9286. "name": "id",
  9287. "in": "path",
  9288. "required": true
  9289. },
  9290. {
  9291. "type": "integer",
  9292. "format": "int64",
  9293. "description": "id of the attachment to get",
  9294. "name": "attachment_id",
  9295. "in": "path",
  9296. "required": true
  9297. }
  9298. ],
  9299. "responses": {
  9300. "200": {
  9301. "$ref": "#/responses/Attachment"
  9302. }
  9303. }
  9304. },
  9305. "delete": {
  9306. "produces": [
  9307. "application/json"
  9308. ],
  9309. "tags": [
  9310. "repository"
  9311. ],
  9312. "summary": "Delete a release attachment",
  9313. "operationId": "repoDeleteReleaseAttachment",
  9314. "parameters": [
  9315. {
  9316. "type": "string",
  9317. "description": "owner of the repo",
  9318. "name": "owner",
  9319. "in": "path",
  9320. "required": true
  9321. },
  9322. {
  9323. "type": "string",
  9324. "description": "name of the repo",
  9325. "name": "repo",
  9326. "in": "path",
  9327. "required": true
  9328. },
  9329. {
  9330. "type": "integer",
  9331. "format": "int64",
  9332. "description": "id of the release",
  9333. "name": "id",
  9334. "in": "path",
  9335. "required": true
  9336. },
  9337. {
  9338. "type": "integer",
  9339. "format": "int64",
  9340. "description": "id of the attachment to delete",
  9341. "name": "attachment_id",
  9342. "in": "path",
  9343. "required": true
  9344. }
  9345. ],
  9346. "responses": {
  9347. "204": {
  9348. "$ref": "#/responses/empty"
  9349. }
  9350. }
  9351. },
  9352. "patch": {
  9353. "consumes": [
  9354. "application/json"
  9355. ],
  9356. "produces": [
  9357. "application/json"
  9358. ],
  9359. "tags": [
  9360. "repository"
  9361. ],
  9362. "summary": "Edit a release attachment",
  9363. "operationId": "repoEditReleaseAttachment",
  9364. "parameters": [
  9365. {
  9366. "type": "string",
  9367. "description": "owner of the repo",
  9368. "name": "owner",
  9369. "in": "path",
  9370. "required": true
  9371. },
  9372. {
  9373. "type": "string",
  9374. "description": "name of the repo",
  9375. "name": "repo",
  9376. "in": "path",
  9377. "required": true
  9378. },
  9379. {
  9380. "type": "integer",
  9381. "format": "int64",
  9382. "description": "id of the release",
  9383. "name": "id",
  9384. "in": "path",
  9385. "required": true
  9386. },
  9387. {
  9388. "type": "integer",
  9389. "format": "int64",
  9390. "description": "id of the attachment to edit",
  9391. "name": "attachment_id",
  9392. "in": "path",
  9393. "required": true
  9394. },
  9395. {
  9396. "name": "body",
  9397. "in": "body",
  9398. "schema": {
  9399. "$ref": "#/definitions/EditAttachmentOptions"
  9400. }
  9401. }
  9402. ],
  9403. "responses": {
  9404. "201": {
  9405. "$ref": "#/responses/Attachment"
  9406. }
  9407. }
  9408. }
  9409. },
  9410. "/repos/{owner}/{repo}/reviewers": {
  9411. "get": {
  9412. "produces": [
  9413. "application/json"
  9414. ],
  9415. "tags": [
  9416. "repository"
  9417. ],
  9418. "summary": "Return all users that can be requested to review in this repo",
  9419. "operationId": "repoGetReviewers",
  9420. "parameters": [
  9421. {
  9422. "type": "string",
  9423. "description": "owner of the repo",
  9424. "name": "owner",
  9425. "in": "path",
  9426. "required": true
  9427. },
  9428. {
  9429. "type": "string",
  9430. "description": "name of the repo",
  9431. "name": "repo",
  9432. "in": "path",
  9433. "required": true
  9434. }
  9435. ],
  9436. "responses": {
  9437. "200": {
  9438. "$ref": "#/responses/UserList"
  9439. }
  9440. }
  9441. }
  9442. },
  9443. "/repos/{owner}/{repo}/signing-key.gpg": {
  9444. "get": {
  9445. "produces": [
  9446. "text/plain"
  9447. ],
  9448. "tags": [
  9449. "repository"
  9450. ],
  9451. "summary": "Get signing-key.gpg for given repository",
  9452. "operationId": "repoSigningKey",
  9453. "parameters": [
  9454. {
  9455. "type": "string",
  9456. "description": "owner of the repo",
  9457. "name": "owner",
  9458. "in": "path",
  9459. "required": true
  9460. },
  9461. {
  9462. "type": "string",
  9463. "description": "name of the repo",
  9464. "name": "repo",
  9465. "in": "path",
  9466. "required": true
  9467. }
  9468. ],
  9469. "responses": {
  9470. "200": {
  9471. "description": "GPG armored public key",
  9472. "schema": {
  9473. "type": "string"
  9474. }
  9475. }
  9476. }
  9477. }
  9478. },
  9479. "/repos/{owner}/{repo}/stargazers": {
  9480. "get": {
  9481. "produces": [
  9482. "application/json"
  9483. ],
  9484. "tags": [
  9485. "repository"
  9486. ],
  9487. "summary": "List a repo's stargazers",
  9488. "operationId": "repoListStargazers",
  9489. "parameters": [
  9490. {
  9491. "type": "string",
  9492. "description": "owner of the repo",
  9493. "name": "owner",
  9494. "in": "path",
  9495. "required": true
  9496. },
  9497. {
  9498. "type": "string",
  9499. "description": "name of the repo",
  9500. "name": "repo",
  9501. "in": "path",
  9502. "required": true
  9503. },
  9504. {
  9505. "type": "integer",
  9506. "description": "page number of results to return (1-based)",
  9507. "name": "page",
  9508. "in": "query"
  9509. },
  9510. {
  9511. "type": "integer",
  9512. "description": "page size of results",
  9513. "name": "limit",
  9514. "in": "query"
  9515. }
  9516. ],
  9517. "responses": {
  9518. "200": {
  9519. "$ref": "#/responses/UserList"
  9520. }
  9521. }
  9522. }
  9523. },
  9524. "/repos/{owner}/{repo}/statuses/{sha}": {
  9525. "get": {
  9526. "produces": [
  9527. "application/json"
  9528. ],
  9529. "tags": [
  9530. "repository"
  9531. ],
  9532. "summary": "Get a commit's statuses",
  9533. "operationId": "repoListStatuses",
  9534. "parameters": [
  9535. {
  9536. "type": "string",
  9537. "description": "owner of the repo",
  9538. "name": "owner",
  9539. "in": "path",
  9540. "required": true
  9541. },
  9542. {
  9543. "type": "string",
  9544. "description": "name of the repo",
  9545. "name": "repo",
  9546. "in": "path",
  9547. "required": true
  9548. },
  9549. {
  9550. "type": "string",
  9551. "description": "sha of the commit",
  9552. "name": "sha",
  9553. "in": "path",
  9554. "required": true
  9555. },
  9556. {
  9557. "enum": [
  9558. "oldest",
  9559. "recentupdate",
  9560. "leastupdate",
  9561. "leastindex",
  9562. "highestindex"
  9563. ],
  9564. "type": "string",
  9565. "description": "type of sort",
  9566. "name": "sort",
  9567. "in": "query"
  9568. },
  9569. {
  9570. "enum": [
  9571. "pending",
  9572. "success",
  9573. "error",
  9574. "failure",
  9575. "warning"
  9576. ],
  9577. "type": "string",
  9578. "description": "type of state",
  9579. "name": "state",
  9580. "in": "query"
  9581. },
  9582. {
  9583. "type": "integer",
  9584. "description": "page number of results to return (1-based)",
  9585. "name": "page",
  9586. "in": "query"
  9587. },
  9588. {
  9589. "type": "integer",
  9590. "description": "page size of results",
  9591. "name": "limit",
  9592. "in": "query"
  9593. }
  9594. ],
  9595. "responses": {
  9596. "200": {
  9597. "$ref": "#/responses/CommitStatusList"
  9598. },
  9599. "400": {
  9600. "$ref": "#/responses/error"
  9601. }
  9602. }
  9603. },
  9604. "post": {
  9605. "produces": [
  9606. "application/json"
  9607. ],
  9608. "tags": [
  9609. "repository"
  9610. ],
  9611. "summary": "Create a commit status",
  9612. "operationId": "repoCreateStatus",
  9613. "parameters": [
  9614. {
  9615. "type": "string",
  9616. "description": "owner of the repo",
  9617. "name": "owner",
  9618. "in": "path",
  9619. "required": true
  9620. },
  9621. {
  9622. "type": "string",
  9623. "description": "name of the repo",
  9624. "name": "repo",
  9625. "in": "path",
  9626. "required": true
  9627. },
  9628. {
  9629. "type": "string",
  9630. "description": "sha of the commit",
  9631. "name": "sha",
  9632. "in": "path",
  9633. "required": true
  9634. },
  9635. {
  9636. "name": "body",
  9637. "in": "body",
  9638. "schema": {
  9639. "$ref": "#/definitions/CreateStatusOption"
  9640. }
  9641. }
  9642. ],
  9643. "responses": {
  9644. "201": {
  9645. "$ref": "#/responses/CommitStatus"
  9646. },
  9647. "400": {
  9648. "$ref": "#/responses/error"
  9649. }
  9650. }
  9651. }
  9652. },
  9653. "/repos/{owner}/{repo}/subscribers": {
  9654. "get": {
  9655. "produces": [
  9656. "application/json"
  9657. ],
  9658. "tags": [
  9659. "repository"
  9660. ],
  9661. "summary": "List a repo's watchers",
  9662. "operationId": "repoListSubscribers",
  9663. "parameters": [
  9664. {
  9665. "type": "string",
  9666. "description": "owner of the repo",
  9667. "name": "owner",
  9668. "in": "path",
  9669. "required": true
  9670. },
  9671. {
  9672. "type": "string",
  9673. "description": "name of the repo",
  9674. "name": "repo",
  9675. "in": "path",
  9676. "required": true
  9677. },
  9678. {
  9679. "type": "integer",
  9680. "description": "page number of results to return (1-based)",
  9681. "name": "page",
  9682. "in": "query"
  9683. },
  9684. {
  9685. "type": "integer",
  9686. "description": "page size of results",
  9687. "name": "limit",
  9688. "in": "query"
  9689. }
  9690. ],
  9691. "responses": {
  9692. "200": {
  9693. "$ref": "#/responses/UserList"
  9694. }
  9695. }
  9696. }
  9697. },
  9698. "/repos/{owner}/{repo}/subscription": {
  9699. "get": {
  9700. "tags": [
  9701. "repository"
  9702. ],
  9703. "summary": "Check if the current user is watching a repo",
  9704. "operationId": "userCurrentCheckSubscription",
  9705. "parameters": [
  9706. {
  9707. "type": "string",
  9708. "description": "owner of the repo",
  9709. "name": "owner",
  9710. "in": "path",
  9711. "required": true
  9712. },
  9713. {
  9714. "type": "string",
  9715. "description": "name of the repo",
  9716. "name": "repo",
  9717. "in": "path",
  9718. "required": true
  9719. }
  9720. ],
  9721. "responses": {
  9722. "200": {
  9723. "$ref": "#/responses/WatchInfo"
  9724. },
  9725. "404": {
  9726. "description": "User is not watching this repo or repo do not exist"
  9727. }
  9728. }
  9729. },
  9730. "put": {
  9731. "tags": [
  9732. "repository"
  9733. ],
  9734. "summary": "Watch a repo",
  9735. "operationId": "userCurrentPutSubscription",
  9736. "parameters": [
  9737. {
  9738. "type": "string",
  9739. "description": "owner of the repo",
  9740. "name": "owner",
  9741. "in": "path",
  9742. "required": true
  9743. },
  9744. {
  9745. "type": "string",
  9746. "description": "name of the repo",
  9747. "name": "repo",
  9748. "in": "path",
  9749. "required": true
  9750. }
  9751. ],
  9752. "responses": {
  9753. "200": {
  9754. "$ref": "#/responses/WatchInfo"
  9755. }
  9756. }
  9757. },
  9758. "delete": {
  9759. "tags": [
  9760. "repository"
  9761. ],
  9762. "summary": "Unwatch a repo",
  9763. "operationId": "userCurrentDeleteSubscription",
  9764. "parameters": [
  9765. {
  9766. "type": "string",
  9767. "description": "owner of the repo",
  9768. "name": "owner",
  9769. "in": "path",
  9770. "required": true
  9771. },
  9772. {
  9773. "type": "string",
  9774. "description": "name of the repo",
  9775. "name": "repo",
  9776. "in": "path",
  9777. "required": true
  9778. }
  9779. ],
  9780. "responses": {
  9781. "204": {
  9782. "$ref": "#/responses/empty"
  9783. }
  9784. }
  9785. }
  9786. },
  9787. "/repos/{owner}/{repo}/tags": {
  9788. "get": {
  9789. "produces": [
  9790. "application/json"
  9791. ],
  9792. "tags": [
  9793. "repository"
  9794. ],
  9795. "summary": "List a repository's tags",
  9796. "operationId": "repoListTags",
  9797. "parameters": [
  9798. {
  9799. "type": "string",
  9800. "description": "owner of the repo",
  9801. "name": "owner",
  9802. "in": "path",
  9803. "required": true
  9804. },
  9805. {
  9806. "type": "string",
  9807. "description": "name of the repo",
  9808. "name": "repo",
  9809. "in": "path",
  9810. "required": true
  9811. },
  9812. {
  9813. "type": "integer",
  9814. "description": "page number of results to return (1-based)",
  9815. "name": "page",
  9816. "in": "query"
  9817. },
  9818. {
  9819. "type": "integer",
  9820. "description": "page size of results, default maximum page size is 50",
  9821. "name": "limit",
  9822. "in": "query"
  9823. }
  9824. ],
  9825. "responses": {
  9826. "200": {
  9827. "$ref": "#/responses/TagList"
  9828. }
  9829. }
  9830. },
  9831. "post": {
  9832. "produces": [
  9833. "application/json"
  9834. ],
  9835. "tags": [
  9836. "repository"
  9837. ],
  9838. "summary": "Create a new git tag in a repository",
  9839. "operationId": "repoCreateTag",
  9840. "parameters": [
  9841. {
  9842. "type": "string",
  9843. "description": "owner of the repo",
  9844. "name": "owner",
  9845. "in": "path",
  9846. "required": true
  9847. },
  9848. {
  9849. "type": "string",
  9850. "description": "name of the repo",
  9851. "name": "repo",
  9852. "in": "path",
  9853. "required": true
  9854. },
  9855. {
  9856. "name": "body",
  9857. "in": "body",
  9858. "schema": {
  9859. "$ref": "#/definitions/CreateTagOption"
  9860. }
  9861. }
  9862. ],
  9863. "responses": {
  9864. "200": {
  9865. "$ref": "#/responses/Tag"
  9866. },
  9867. "404": {
  9868. "$ref": "#/responses/notFound"
  9869. },
  9870. "405": {
  9871. "$ref": "#/responses/empty"
  9872. },
  9873. "409": {
  9874. "$ref": "#/responses/conflict"
  9875. }
  9876. }
  9877. }
  9878. },
  9879. "/repos/{owner}/{repo}/tags/{tag}": {
  9880. "get": {
  9881. "produces": [
  9882. "application/json"
  9883. ],
  9884. "tags": [
  9885. "repository"
  9886. ],
  9887. "summary": "Get the tag of a repository by tag name",
  9888. "operationId": "repoGetTag",
  9889. "parameters": [
  9890. {
  9891. "type": "string",
  9892. "description": "owner of the repo",
  9893. "name": "owner",
  9894. "in": "path",
  9895. "required": true
  9896. },
  9897. {
  9898. "type": "string",
  9899. "description": "name of the repo",
  9900. "name": "repo",
  9901. "in": "path",
  9902. "required": true
  9903. },
  9904. {
  9905. "type": "string",
  9906. "description": "name of tag",
  9907. "name": "tag",
  9908. "in": "path",
  9909. "required": true
  9910. }
  9911. ],
  9912. "responses": {
  9913. "200": {
  9914. "$ref": "#/responses/Tag"
  9915. },
  9916. "404": {
  9917. "$ref": "#/responses/notFound"
  9918. }
  9919. }
  9920. },
  9921. "delete": {
  9922. "produces": [
  9923. "application/json"
  9924. ],
  9925. "tags": [
  9926. "repository"
  9927. ],
  9928. "summary": "Delete a repository's tag by name",
  9929. "operationId": "repoDeleteTag",
  9930. "parameters": [
  9931. {
  9932. "type": "string",
  9933. "description": "owner of the repo",
  9934. "name": "owner",
  9935. "in": "path",
  9936. "required": true
  9937. },
  9938. {
  9939. "type": "string",
  9940. "description": "name of the repo",
  9941. "name": "repo",
  9942. "in": "path",
  9943. "required": true
  9944. },
  9945. {
  9946. "type": "string",
  9947. "description": "name of tag to delete",
  9948. "name": "tag",
  9949. "in": "path",
  9950. "required": true
  9951. }
  9952. ],
  9953. "responses": {
  9954. "204": {
  9955. "$ref": "#/responses/empty"
  9956. },
  9957. "404": {
  9958. "$ref": "#/responses/notFound"
  9959. },
  9960. "405": {
  9961. "$ref": "#/responses/empty"
  9962. },
  9963. "409": {
  9964. "$ref": "#/responses/conflict"
  9965. }
  9966. }
  9967. }
  9968. },
  9969. "/repos/{owner}/{repo}/teams": {
  9970. "get": {
  9971. "produces": [
  9972. "application/json"
  9973. ],
  9974. "tags": [
  9975. "repository"
  9976. ],
  9977. "summary": "List a repository's teams",
  9978. "operationId": "repoListTeams",
  9979. "parameters": [
  9980. {
  9981. "type": "string",
  9982. "description": "owner of the repo",
  9983. "name": "owner",
  9984. "in": "path",
  9985. "required": true
  9986. },
  9987. {
  9988. "type": "string",
  9989. "description": "name of the repo",
  9990. "name": "repo",
  9991. "in": "path",
  9992. "required": true
  9993. }
  9994. ],
  9995. "responses": {
  9996. "200": {
  9997. "$ref": "#/responses/TeamList"
  9998. }
  9999. }
  10000. }
  10001. },
  10002. "/repos/{owner}/{repo}/teams/{team}": {
  10003. "get": {
  10004. "produces": [
  10005. "application/json"
  10006. ],
  10007. "tags": [
  10008. "repository"
  10009. ],
  10010. "summary": "Check if a team is assigned to a repository",
  10011. "operationId": "repoCheckTeam",
  10012. "parameters": [
  10013. {
  10014. "type": "string",
  10015. "description": "owner of the repo",
  10016. "name": "owner",
  10017. "in": "path",
  10018. "required": true
  10019. },
  10020. {
  10021. "type": "string",
  10022. "description": "name of the repo",
  10023. "name": "repo",
  10024. "in": "path",
  10025. "required": true
  10026. },
  10027. {
  10028. "type": "string",
  10029. "description": "team name",
  10030. "name": "team",
  10031. "in": "path",
  10032. "required": true
  10033. }
  10034. ],
  10035. "responses": {
  10036. "200": {
  10037. "$ref": "#/responses/Team"
  10038. },
  10039. "404": {
  10040. "$ref": "#/responses/notFound"
  10041. },
  10042. "405": {
  10043. "$ref": "#/responses/error"
  10044. }
  10045. }
  10046. },
  10047. "put": {
  10048. "produces": [
  10049. "application/json"
  10050. ],
  10051. "tags": [
  10052. "repository"
  10053. ],
  10054. "summary": "Add a team to a repository",
  10055. "operationId": "repoAddTeam",
  10056. "parameters": [
  10057. {
  10058. "type": "string",
  10059. "description": "owner of the repo",
  10060. "name": "owner",
  10061. "in": "path",
  10062. "required": true
  10063. },
  10064. {
  10065. "type": "string",
  10066. "description": "name of the repo",
  10067. "name": "repo",
  10068. "in": "path",
  10069. "required": true
  10070. },
  10071. {
  10072. "type": "string",
  10073. "description": "team name",
  10074. "name": "team",
  10075. "in": "path",
  10076. "required": true
  10077. }
  10078. ],
  10079. "responses": {
  10080. "204": {
  10081. "$ref": "#/responses/empty"
  10082. },
  10083. "405": {
  10084. "$ref": "#/responses/error"
  10085. },
  10086. "422": {
  10087. "$ref": "#/responses/validationError"
  10088. }
  10089. }
  10090. },
  10091. "delete": {
  10092. "produces": [
  10093. "application/json"
  10094. ],
  10095. "tags": [
  10096. "repository"
  10097. ],
  10098. "summary": "Delete a team from a repository",
  10099. "operationId": "repoDeleteTeam",
  10100. "parameters": [
  10101. {
  10102. "type": "string",
  10103. "description": "owner of the repo",
  10104. "name": "owner",
  10105. "in": "path",
  10106. "required": true
  10107. },
  10108. {
  10109. "type": "string",
  10110. "description": "name of the repo",
  10111. "name": "repo",
  10112. "in": "path",
  10113. "required": true
  10114. },
  10115. {
  10116. "type": "string",
  10117. "description": "team name",
  10118. "name": "team",
  10119. "in": "path",
  10120. "required": true
  10121. }
  10122. ],
  10123. "responses": {
  10124. "204": {
  10125. "$ref": "#/responses/empty"
  10126. },
  10127. "405": {
  10128. "$ref": "#/responses/error"
  10129. },
  10130. "422": {
  10131. "$ref": "#/responses/validationError"
  10132. }
  10133. }
  10134. }
  10135. },
  10136. "/repos/{owner}/{repo}/times": {
  10137. "get": {
  10138. "produces": [
  10139. "application/json"
  10140. ],
  10141. "tags": [
  10142. "repository"
  10143. ],
  10144. "summary": "List a repo's tracked times",
  10145. "operationId": "repoTrackedTimes",
  10146. "parameters": [
  10147. {
  10148. "type": "string",
  10149. "description": "owner of the repo",
  10150. "name": "owner",
  10151. "in": "path",
  10152. "required": true
  10153. },
  10154. {
  10155. "type": "string",
  10156. "description": "name of the repo",
  10157. "name": "repo",
  10158. "in": "path",
  10159. "required": true
  10160. },
  10161. {
  10162. "type": "string",
  10163. "description": "optional filter by user (available for issue managers)",
  10164. "name": "user",
  10165. "in": "query"
  10166. },
  10167. {
  10168. "type": "string",
  10169. "format": "date-time",
  10170. "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format",
  10171. "name": "since",
  10172. "in": "query"
  10173. },
  10174. {
  10175. "type": "string",
  10176. "format": "date-time",
  10177. "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format",
  10178. "name": "before",
  10179. "in": "query"
  10180. },
  10181. {
  10182. "type": "integer",
  10183. "description": "page number of results to return (1-based)",
  10184. "name": "page",
  10185. "in": "query"
  10186. },
  10187. {
  10188. "type": "integer",
  10189. "description": "page size of results",
  10190. "name": "limit",
  10191. "in": "query"
  10192. }
  10193. ],
  10194. "responses": {
  10195. "200": {
  10196. "$ref": "#/responses/TrackedTimeList"
  10197. },
  10198. "400": {
  10199. "$ref": "#/responses/error"
  10200. },
  10201. "403": {
  10202. "$ref": "#/responses/forbidden"
  10203. }
  10204. }
  10205. }
  10206. },
  10207. "/repos/{owner}/{repo}/times/{user}": {
  10208. "get": {
  10209. "produces": [
  10210. "application/json"
  10211. ],
  10212. "tags": [
  10213. "repository"
  10214. ],
  10215. "summary": "List a user's tracked times in a repo",
  10216. "operationId": "userTrackedTimes",
  10217. "deprecated": true,
  10218. "parameters": [
  10219. {
  10220. "type": "string",
  10221. "description": "owner of the repo",
  10222. "name": "owner",
  10223. "in": "path",
  10224. "required": true
  10225. },
  10226. {
  10227. "type": "string",
  10228. "description": "name of the repo",
  10229. "name": "repo",
  10230. "in": "path",
  10231. "required": true
  10232. },
  10233. {
  10234. "type": "string",
  10235. "description": "username of user",
  10236. "name": "user",
  10237. "in": "path",
  10238. "required": true
  10239. }
  10240. ],
  10241. "responses": {
  10242. "200": {
  10243. "$ref": "#/responses/TrackedTimeList"
  10244. },
  10245. "400": {
  10246. "$ref": "#/responses/error"
  10247. },
  10248. "403": {
  10249. "$ref": "#/responses/forbidden"
  10250. }
  10251. }
  10252. }
  10253. },
  10254. "/repos/{owner}/{repo}/topics": {
  10255. "get": {
  10256. "produces": [
  10257. "application/json"
  10258. ],
  10259. "tags": [
  10260. "repository"
  10261. ],
  10262. "summary": "Get list of topics that a repository has",
  10263. "operationId": "repoListTopics",
  10264. "parameters": [
  10265. {
  10266. "type": "string",
  10267. "description": "owner of the repo",
  10268. "name": "owner",
  10269. "in": "path",
  10270. "required": true
  10271. },
  10272. {
  10273. "type": "string",
  10274. "description": "name of the repo",
  10275. "name": "repo",
  10276. "in": "path",
  10277. "required": true
  10278. },
  10279. {
  10280. "type": "integer",
  10281. "description": "page number of results to return (1-based)",
  10282. "name": "page",
  10283. "in": "query"
  10284. },
  10285. {
  10286. "type": "integer",
  10287. "description": "page size of results",
  10288. "name": "limit",
  10289. "in": "query"
  10290. }
  10291. ],
  10292. "responses": {
  10293. "200": {
  10294. "$ref": "#/responses/TopicNames"
  10295. }
  10296. }
  10297. },
  10298. "put": {
  10299. "produces": [
  10300. "application/json"
  10301. ],
  10302. "tags": [
  10303. "repository"
  10304. ],
  10305. "summary": "Replace list of topics for a repository",
  10306. "operationId": "repoUpdateTopics",
  10307. "parameters": [
  10308. {
  10309. "type": "string",
  10310. "description": "owner of the repo",
  10311. "name": "owner",
  10312. "in": "path",
  10313. "required": true
  10314. },
  10315. {
  10316. "type": "string",
  10317. "description": "name of the repo",
  10318. "name": "repo",
  10319. "in": "path",
  10320. "required": true
  10321. },
  10322. {
  10323. "name": "body",
  10324. "in": "body",
  10325. "schema": {
  10326. "$ref": "#/definitions/RepoTopicOptions"
  10327. }
  10328. }
  10329. ],
  10330. "responses": {
  10331. "204": {
  10332. "$ref": "#/responses/empty"
  10333. },
  10334. "422": {
  10335. "$ref": "#/responses/invalidTopicsError"
  10336. }
  10337. }
  10338. }
  10339. },
  10340. "/repos/{owner}/{repo}/topics/{topic}": {
  10341. "put": {
  10342. "produces": [
  10343. "application/json"
  10344. ],
  10345. "tags": [
  10346. "repository"
  10347. ],
  10348. "summary": "Add a topic to a repository",
  10349. "operationId": "repoAddTopic",
  10350. "parameters": [
  10351. {
  10352. "type": "string",
  10353. "description": "owner of the repo",
  10354. "name": "owner",
  10355. "in": "path",
  10356. "required": true
  10357. },
  10358. {
  10359. "type": "string",
  10360. "description": "name of the repo",
  10361. "name": "repo",
  10362. "in": "path",
  10363. "required": true
  10364. },
  10365. {
  10366. "type": "string",
  10367. "description": "name of the topic to add",
  10368. "name": "topic",
  10369. "in": "path",
  10370. "required": true
  10371. }
  10372. ],
  10373. "responses": {
  10374. "204": {
  10375. "$ref": "#/responses/empty"
  10376. },
  10377. "422": {
  10378. "$ref": "#/responses/invalidTopicsError"
  10379. }
  10380. }
  10381. },
  10382. "delete": {
  10383. "produces": [
  10384. "application/json"
  10385. ],
  10386. "tags": [
  10387. "repository"
  10388. ],
  10389. "summary": "Delete a topic from a repository",
  10390. "operationId": "repoDeleteTopic",
  10391. "parameters": [
  10392. {
  10393. "type": "string",
  10394. "description": "owner of the repo",
  10395. "name": "owner",
  10396. "in": "path",
  10397. "required": true
  10398. },
  10399. {
  10400. "type": "string",
  10401. "description": "name of the repo",
  10402. "name": "repo",
  10403. "in": "path",
  10404. "required": true
  10405. },
  10406. {
  10407. "type": "string",
  10408. "description": "name of the topic to delete",
  10409. "name": "topic",
  10410. "in": "path",
  10411. "required": true
  10412. }
  10413. ],
  10414. "responses": {
  10415. "204": {
  10416. "$ref": "#/responses/empty"
  10417. },
  10418. "422": {
  10419. "$ref": "#/responses/invalidTopicsError"
  10420. }
  10421. }
  10422. }
  10423. },
  10424. "/repos/{owner}/{repo}/transfer": {
  10425. "post": {
  10426. "produces": [
  10427. "application/json"
  10428. ],
  10429. "tags": [
  10430. "repository"
  10431. ],
  10432. "summary": "Transfer a repo ownership",
  10433. "operationId": "repoTransfer",
  10434. "parameters": [
  10435. {
  10436. "type": "string",
  10437. "description": "owner of the repo to transfer",
  10438. "name": "owner",
  10439. "in": "path",
  10440. "required": true
  10441. },
  10442. {
  10443. "type": "string",
  10444. "description": "name of the repo to transfer",
  10445. "name": "repo",
  10446. "in": "path",
  10447. "required": true
  10448. },
  10449. {
  10450. "description": "Transfer Options",
  10451. "name": "body",
  10452. "in": "body",
  10453. "required": true,
  10454. "schema": {
  10455. "$ref": "#/definitions/TransferRepoOption"
  10456. }
  10457. }
  10458. ],
  10459. "responses": {
  10460. "202": {
  10461. "$ref": "#/responses/Repository"
  10462. },
  10463. "403": {
  10464. "$ref": "#/responses/forbidden"
  10465. },
  10466. "404": {
  10467. "$ref": "#/responses/notFound"
  10468. },
  10469. "422": {
  10470. "$ref": "#/responses/validationError"
  10471. }
  10472. }
  10473. }
  10474. },
  10475. "/repos/{owner}/{repo}/transfer/accept": {
  10476. "post": {
  10477. "produces": [
  10478. "application/json"
  10479. ],
  10480. "tags": [
  10481. "repository"
  10482. ],
  10483. "summary": "Accept a repo transfer",
  10484. "operationId": "acceptRepoTransfer",
  10485. "parameters": [
  10486. {
  10487. "type": "string",
  10488. "description": "owner of the repo to transfer",
  10489. "name": "owner",
  10490. "in": "path",
  10491. "required": true
  10492. },
  10493. {
  10494. "type": "string",
  10495. "description": "name of the repo to transfer",
  10496. "name": "repo",
  10497. "in": "path",
  10498. "required": true
  10499. }
  10500. ],
  10501. "responses": {
  10502. "202": {
  10503. "$ref": "#/responses/Repository"
  10504. },
  10505. "403": {
  10506. "$ref": "#/responses/forbidden"
  10507. },
  10508. "404": {
  10509. "$ref": "#/responses/notFound"
  10510. }
  10511. }
  10512. }
  10513. },
  10514. "/repos/{owner}/{repo}/transfer/reject": {
  10515. "post": {
  10516. "produces": [
  10517. "application/json"
  10518. ],
  10519. "tags": [
  10520. "repository"
  10521. ],
  10522. "summary": "Reject a repo transfer",
  10523. "operationId": "rejectRepoTransfer",
  10524. "parameters": [
  10525. {
  10526. "type": "string",
  10527. "description": "owner of the repo to transfer",
  10528. "name": "owner",
  10529. "in": "path",
  10530. "required": true
  10531. },
  10532. {
  10533. "type": "string",
  10534. "description": "name of the repo to transfer",
  10535. "name": "repo",
  10536. "in": "path",
  10537. "required": true
  10538. }
  10539. ],
  10540. "responses": {
  10541. "200": {
  10542. "$ref": "#/responses/Repository"
  10543. },
  10544. "403": {
  10545. "$ref": "#/responses/forbidden"
  10546. },
  10547. "404": {
  10548. "$ref": "#/responses/notFound"
  10549. }
  10550. }
  10551. }
  10552. },
  10553. "/repos/{owner}/{repo}/wiki/new": {
  10554. "post": {
  10555. "consumes": [
  10556. "application/json"
  10557. ],
  10558. "tags": [
  10559. "repository"
  10560. ],
  10561. "summary": "Create a wiki page",
  10562. "operationId": "repoCreateWikiPage",
  10563. "parameters": [
  10564. {
  10565. "type": "string",
  10566. "description": "owner of the repo",
  10567. "name": "owner",
  10568. "in": "path",
  10569. "required": true
  10570. },
  10571. {
  10572. "type": "string",
  10573. "description": "name of the repo",
  10574. "name": "repo",
  10575. "in": "path",
  10576. "required": true
  10577. },
  10578. {
  10579. "name": "body",
  10580. "in": "body",
  10581. "schema": {
  10582. "$ref": "#/definitions/CreateWikiPageOptions"
  10583. }
  10584. }
  10585. ],
  10586. "responses": {
  10587. "201": {
  10588. "$ref": "#/responses/WikiPage"
  10589. },
  10590. "400": {
  10591. "$ref": "#/responses/error"
  10592. },
  10593. "403": {
  10594. "$ref": "#/responses/forbidden"
  10595. }
  10596. }
  10597. }
  10598. },
  10599. "/repos/{owner}/{repo}/wiki/page/{pageName}": {
  10600. "get": {
  10601. "produces": [
  10602. "application/json"
  10603. ],
  10604. "tags": [
  10605. "repository"
  10606. ],
  10607. "summary": "Get a wiki page",
  10608. "operationId": "repoGetWikiPage",
  10609. "parameters": [
  10610. {
  10611. "type": "string",
  10612. "description": "owner of the repo",
  10613. "name": "owner",
  10614. "in": "path",
  10615. "required": true
  10616. },
  10617. {
  10618. "type": "string",
  10619. "description": "name of the repo",
  10620. "name": "repo",
  10621. "in": "path",
  10622. "required": true
  10623. },
  10624. {
  10625. "type": "string",
  10626. "description": "name of the page",
  10627. "name": "pageName",
  10628. "in": "path",
  10629. "required": true
  10630. }
  10631. ],
  10632. "responses": {
  10633. "200": {
  10634. "$ref": "#/responses/WikiPage"
  10635. },
  10636. "404": {
  10637. "$ref": "#/responses/notFound"
  10638. }
  10639. }
  10640. },
  10641. "delete": {
  10642. "tags": [
  10643. "repository"
  10644. ],
  10645. "summary": "Delete a wiki page",
  10646. "operationId": "repoDeleteWikiPage",
  10647. "parameters": [
  10648. {
  10649. "type": "string",
  10650. "description": "owner of the repo",
  10651. "name": "owner",
  10652. "in": "path",
  10653. "required": true
  10654. },
  10655. {
  10656. "type": "string",
  10657. "description": "name of the repo",
  10658. "name": "repo",
  10659. "in": "path",
  10660. "required": true
  10661. },
  10662. {
  10663. "type": "string",
  10664. "description": "name of the page",
  10665. "name": "pageName",
  10666. "in": "path",
  10667. "required": true
  10668. }
  10669. ],
  10670. "responses": {
  10671. "204": {
  10672. "$ref": "#/responses/empty"
  10673. },
  10674. "403": {
  10675. "$ref": "#/responses/forbidden"
  10676. },
  10677. "404": {
  10678. "$ref": "#/responses/notFound"
  10679. }
  10680. }
  10681. },
  10682. "patch": {
  10683. "consumes": [
  10684. "application/json"
  10685. ],
  10686. "tags": [
  10687. "repository"
  10688. ],
  10689. "summary": "Edit a wiki page",
  10690. "operationId": "repoEditWikiPage",
  10691. "parameters": [
  10692. {
  10693. "type": "string",
  10694. "description": "owner of the repo",
  10695. "name": "owner",
  10696. "in": "path",
  10697. "required": true
  10698. },
  10699. {
  10700. "type": "string",
  10701. "description": "name of the repo",
  10702. "name": "repo",
  10703. "in": "path",
  10704. "required": true
  10705. },
  10706. {
  10707. "type": "string",
  10708. "description": "name of the page",
  10709. "name": "pageName",
  10710. "in": "path",
  10711. "required": true
  10712. },
  10713. {
  10714. "name": "body",
  10715. "in": "body",
  10716. "schema": {
  10717. "$ref": "#/definitions/CreateWikiPageOptions"
  10718. }
  10719. }
  10720. ],
  10721. "responses": {
  10722. "200": {
  10723. "$ref": "#/responses/WikiPage"
  10724. },
  10725. "400": {
  10726. "$ref": "#/responses/error"
  10727. },
  10728. "403": {
  10729. "$ref": "#/responses/forbidden"
  10730. }
  10731. }
  10732. }
  10733. },
  10734. "/repos/{owner}/{repo}/wiki/pages": {
  10735. "get": {
  10736. "produces": [
  10737. "application/json"
  10738. ],
  10739. "tags": [
  10740. "repository"
  10741. ],
  10742. "summary": "Get all wiki pages",
  10743. "operationId": "repoGetWikiPages",
  10744. "parameters": [
  10745. {
  10746. "type": "string",
  10747. "description": "owner of the repo",
  10748. "name": "owner",
  10749. "in": "path",
  10750. "required": true
  10751. },
  10752. {
  10753. "type": "string",
  10754. "description": "name of the repo",
  10755. "name": "repo",
  10756. "in": "path",
  10757. "required": true
  10758. },
  10759. {
  10760. "type": "integer",
  10761. "description": "page number of results to return (1-based)",
  10762. "name": "page",
  10763. "in": "query"
  10764. },
  10765. {
  10766. "type": "integer",
  10767. "description": "page size of results",
  10768. "name": "limit",
  10769. "in": "query"
  10770. }
  10771. ],
  10772. "responses": {
  10773. "200": {
  10774. "$ref": "#/responses/WikiPageList"
  10775. },
  10776. "404": {
  10777. "$ref": "#/responses/notFound"
  10778. }
  10779. }
  10780. }
  10781. },
  10782. "/repos/{owner}/{repo}/wiki/revisions/{pageName}": {
  10783. "get": {
  10784. "produces": [
  10785. "application/json"
  10786. ],
  10787. "tags": [
  10788. "repository"
  10789. ],
  10790. "summary": "Get revisions of a wiki page",
  10791. "operationId": "repoGetWikiPageRevisions",
  10792. "parameters": [
  10793. {
  10794. "type": "string",
  10795. "description": "owner of the repo",
  10796. "name": "owner",
  10797. "in": "path",
  10798. "required": true
  10799. },
  10800. {
  10801. "type": "string",
  10802. "description": "name of the repo",
  10803. "name": "repo",
  10804. "in": "path",
  10805. "required": true
  10806. },
  10807. {
  10808. "type": "string",
  10809. "description": "name of the page",
  10810. "name": "pageName",
  10811. "in": "path",
  10812. "required": true
  10813. },
  10814. {
  10815. "type": "integer",
  10816. "description": "page number of results to return (1-based)",
  10817. "name": "page",
  10818. "in": "query"
  10819. }
  10820. ],
  10821. "responses": {
  10822. "200": {
  10823. "$ref": "#/responses/WikiCommitList"
  10824. },
  10825. "404": {
  10826. "$ref": "#/responses/notFound"
  10827. }
  10828. }
  10829. }
  10830. },
  10831. "/repos/{template_owner}/{template_repo}/generate": {
  10832. "post": {
  10833. "consumes": [
  10834. "application/json"
  10835. ],
  10836. "produces": [
  10837. "application/json"
  10838. ],
  10839. "tags": [
  10840. "repository"
  10841. ],
  10842. "summary": "Create a repository using a template",
  10843. "operationId": "generateRepo",
  10844. "parameters": [
  10845. {
  10846. "type": "string",
  10847. "description": "name of the template repository owner",
  10848. "name": "template_owner",
  10849. "in": "path",
  10850. "required": true
  10851. },
  10852. {
  10853. "type": "string",
  10854. "description": "name of the template repository",
  10855. "name": "template_repo",
  10856. "in": "path",
  10857. "required": true
  10858. },
  10859. {
  10860. "name": "body",
  10861. "in": "body",
  10862. "schema": {
  10863. "$ref": "#/definitions/GenerateRepoOption"
  10864. }
  10865. }
  10866. ],
  10867. "responses": {
  10868. "201": {
  10869. "$ref": "#/responses/Repository"
  10870. },
  10871. "403": {
  10872. "$ref": "#/responses/forbidden"
  10873. },
  10874. "404": {
  10875. "$ref": "#/responses/notFound"
  10876. },
  10877. "409": {
  10878. "description": "The repository with the same name already exists."
  10879. },
  10880. "422": {
  10881. "$ref": "#/responses/validationError"
  10882. }
  10883. }
  10884. }
  10885. },
  10886. "/repositories/{id}": {
  10887. "get": {
  10888. "produces": [
  10889. "application/json"
  10890. ],
  10891. "tags": [
  10892. "repository"
  10893. ],
  10894. "summary": "Get a repository by id",
  10895. "operationId": "repoGetByID",
  10896. "parameters": [
  10897. {
  10898. "type": "integer",
  10899. "format": "int64",
  10900. "description": "id of the repo to get",
  10901. "name": "id",
  10902. "in": "path",
  10903. "required": true
  10904. }
  10905. ],
  10906. "responses": {
  10907. "200": {
  10908. "$ref": "#/responses/Repository"
  10909. }
  10910. }
  10911. }
  10912. },
  10913. "/settings/api": {
  10914. "get": {
  10915. "produces": [
  10916. "application/json"
  10917. ],
  10918. "tags": [
  10919. "settings"
  10920. ],
  10921. "summary": "Get instance's global settings for api",
  10922. "operationId": "getGeneralAPISettings",
  10923. "responses": {
  10924. "200": {
  10925. "$ref": "#/responses/GeneralAPISettings"
  10926. }
  10927. }
  10928. }
  10929. },
  10930. "/settings/attachment": {
  10931. "get": {
  10932. "produces": [
  10933. "application/json"
  10934. ],
  10935. "tags": [
  10936. "settings"
  10937. ],
  10938. "summary": "Get instance's global settings for Attachment",
  10939. "operationId": "getGeneralAttachmentSettings",
  10940. "responses": {
  10941. "200": {
  10942. "$ref": "#/responses/GeneralAttachmentSettings"
  10943. }
  10944. }
  10945. }
  10946. },
  10947. "/settings/repository": {
  10948. "get": {
  10949. "produces": [
  10950. "application/json"
  10951. ],
  10952. "tags": [
  10953. "settings"
  10954. ],
  10955. "summary": "Get instance's global settings for repositories",
  10956. "operationId": "getGeneralRepositorySettings",
  10957. "responses": {
  10958. "200": {
  10959. "$ref": "#/responses/GeneralRepoSettings"
  10960. }
  10961. }
  10962. }
  10963. },
  10964. "/settings/ui": {
  10965. "get": {
  10966. "produces": [
  10967. "application/json"
  10968. ],
  10969. "tags": [
  10970. "settings"
  10971. ],
  10972. "summary": "Get instance's global settings for ui",
  10973. "operationId": "getGeneralUISettings",
  10974. "responses": {
  10975. "200": {
  10976. "$ref": "#/responses/GeneralUISettings"
  10977. }
  10978. }
  10979. }
  10980. },
  10981. "/signing-key.gpg": {
  10982. "get": {
  10983. "produces": [
  10984. "text/plain"
  10985. ],
  10986. "tags": [
  10987. "miscellaneous"
  10988. ],
  10989. "summary": "Get default signing-key.gpg",
  10990. "operationId": "getSigningKey",
  10991. "responses": {
  10992. "200": {
  10993. "description": "GPG armored public key",
  10994. "schema": {
  10995. "type": "string"
  10996. }
  10997. }
  10998. }
  10999. }
  11000. },
  11001. "/teams/{id}": {
  11002. "get": {
  11003. "produces": [
  11004. "application/json"
  11005. ],
  11006. "tags": [
  11007. "organization"
  11008. ],
  11009. "summary": "Get a team",
  11010. "operationId": "orgGetTeam",
  11011. "parameters": [
  11012. {
  11013. "type": "integer",
  11014. "format": "int64",
  11015. "description": "id of the team to get",
  11016. "name": "id",
  11017. "in": "path",
  11018. "required": true
  11019. }
  11020. ],
  11021. "responses": {
  11022. "200": {
  11023. "$ref": "#/responses/Team"
  11024. }
  11025. }
  11026. },
  11027. "delete": {
  11028. "tags": [
  11029. "organization"
  11030. ],
  11031. "summary": "Delete a team",
  11032. "operationId": "orgDeleteTeam",
  11033. "parameters": [
  11034. {
  11035. "type": "integer",
  11036. "format": "int64",
  11037. "description": "id of the team to delete",
  11038. "name": "id",
  11039. "in": "path",
  11040. "required": true
  11041. }
  11042. ],
  11043. "responses": {
  11044. "204": {
  11045. "description": "team deleted"
  11046. }
  11047. }
  11048. },
  11049. "patch": {
  11050. "consumes": [
  11051. "application/json"
  11052. ],
  11053. "produces": [
  11054. "application/json"
  11055. ],
  11056. "tags": [
  11057. "organization"
  11058. ],
  11059. "summary": "Edit a team",
  11060. "operationId": "orgEditTeam",
  11061. "parameters": [
  11062. {
  11063. "type": "integer",
  11064. "description": "id of the team to edit",
  11065. "name": "id",
  11066. "in": "path",
  11067. "required": true
  11068. },
  11069. {
  11070. "name": "body",
  11071. "in": "body",
  11072. "schema": {
  11073. "$ref": "#/definitions/EditTeamOption"
  11074. }
  11075. }
  11076. ],
  11077. "responses": {
  11078. "200": {
  11079. "$ref": "#/responses/Team"
  11080. }
  11081. }
  11082. }
  11083. },
  11084. "/teams/{id}/members": {
  11085. "get": {
  11086. "produces": [
  11087. "application/json"
  11088. ],
  11089. "tags": [
  11090. "organization"
  11091. ],
  11092. "summary": "List a team's members",
  11093. "operationId": "orgListTeamMembers",
  11094. "parameters": [
  11095. {
  11096. "type": "integer",
  11097. "format": "int64",
  11098. "description": "id of the team",
  11099. "name": "id",
  11100. "in": "path",
  11101. "required": true
  11102. },
  11103. {
  11104. "type": "integer",
  11105. "description": "page number of results to return (1-based)",
  11106. "name": "page",
  11107. "in": "query"
  11108. },
  11109. {
  11110. "type": "integer",
  11111. "description": "page size of results",
  11112. "name": "limit",
  11113. "in": "query"
  11114. }
  11115. ],
  11116. "responses": {
  11117. "200": {
  11118. "$ref": "#/responses/UserList"
  11119. }
  11120. }
  11121. }
  11122. },
  11123. "/teams/{id}/members/{username}": {
  11124. "get": {
  11125. "produces": [
  11126. "application/json"
  11127. ],
  11128. "tags": [
  11129. "organization"
  11130. ],
  11131. "summary": "List a particular member of team",
  11132. "operationId": "orgListTeamMember",
  11133. "parameters": [
  11134. {
  11135. "type": "integer",
  11136. "format": "int64",
  11137. "description": "id of the team",
  11138. "name": "id",
  11139. "in": "path",
  11140. "required": true
  11141. },
  11142. {
  11143. "type": "string",
  11144. "description": "username of the member to list",
  11145. "name": "username",
  11146. "in": "path",
  11147. "required": true
  11148. }
  11149. ],
  11150. "responses": {
  11151. "200": {
  11152. "$ref": "#/responses/User"
  11153. },
  11154. "404": {
  11155. "$ref": "#/responses/notFound"
  11156. }
  11157. }
  11158. },
  11159. "put": {
  11160. "produces": [
  11161. "application/json"
  11162. ],
  11163. "tags": [
  11164. "organization"
  11165. ],
  11166. "summary": "Add a team member",
  11167. "operationId": "orgAddTeamMember",
  11168. "parameters": [
  11169. {
  11170. "type": "integer",
  11171. "format": "int64",
  11172. "description": "id of the team",
  11173. "name": "id",
  11174. "in": "path",
  11175. "required": true
  11176. },
  11177. {
  11178. "type": "string",
  11179. "description": "username of the user to add",
  11180. "name": "username",
  11181. "in": "path",
  11182. "required": true
  11183. }
  11184. ],
  11185. "responses": {
  11186. "204": {
  11187. "$ref": "#/responses/empty"
  11188. },
  11189. "404": {
  11190. "$ref": "#/responses/notFound"
  11191. }
  11192. }
  11193. },
  11194. "delete": {
  11195. "produces": [
  11196. "application/json"
  11197. ],
  11198. "tags": [
  11199. "organization"
  11200. ],
  11201. "summary": "Remove a team member",
  11202. "operationId": "orgRemoveTeamMember",
  11203. "parameters": [
  11204. {
  11205. "type": "integer",
  11206. "format": "int64",
  11207. "description": "id of the team",
  11208. "name": "id",
  11209. "in": "path",
  11210. "required": true
  11211. },
  11212. {
  11213. "type": "string",
  11214. "description": "username of the user to remove",
  11215. "name": "username",
  11216. "in": "path",
  11217. "required": true
  11218. }
  11219. ],
  11220. "responses": {
  11221. "204": {
  11222. "$ref": "#/responses/empty"
  11223. },
  11224. "404": {
  11225. "$ref": "#/responses/notFound"
  11226. }
  11227. }
  11228. }
  11229. },
  11230. "/teams/{id}/repos": {
  11231. "get": {
  11232. "produces": [
  11233. "application/json"
  11234. ],
  11235. "tags": [
  11236. "organization"
  11237. ],
  11238. "summary": "List a team's repos",
  11239. "operationId": "orgListTeamRepos",
  11240. "parameters": [
  11241. {
  11242. "type": "integer",
  11243. "format": "int64",
  11244. "description": "id of the team",
  11245. "name": "id",
  11246. "in": "path",
  11247. "required": true
  11248. },
  11249. {
  11250. "type": "integer",
  11251. "description": "page number of results to return (1-based)",
  11252. "name": "page",
  11253. "in": "query"
  11254. },
  11255. {
  11256. "type": "integer",
  11257. "description": "page size of results",
  11258. "name": "limit",
  11259. "in": "query"
  11260. }
  11261. ],
  11262. "responses": {
  11263. "200": {
  11264. "$ref": "#/responses/RepositoryList"
  11265. }
  11266. }
  11267. }
  11268. },
  11269. "/teams/{id}/repos/{org}/{repo}": {
  11270. "get": {
  11271. "produces": [
  11272. "application/json"
  11273. ],
  11274. "tags": [
  11275. "organization"
  11276. ],
  11277. "summary": "List a particular repo of team",
  11278. "operationId": "orgListTeamRepo",
  11279. "parameters": [
  11280. {
  11281. "type": "integer",
  11282. "format": "int64",
  11283. "description": "id of the team",
  11284. "name": "id",
  11285. "in": "path",
  11286. "required": true
  11287. },
  11288. {
  11289. "type": "string",
  11290. "description": "organization that owns the repo to list",
  11291. "name": "org",
  11292. "in": "path",
  11293. "required": true
  11294. },
  11295. {
  11296. "type": "string",
  11297. "description": "name of the repo to list",
  11298. "name": "repo",
  11299. "in": "path",
  11300. "required": true
  11301. }
  11302. ],
  11303. "responses": {
  11304. "200": {
  11305. "$ref": "#/responses/Repository"
  11306. },
  11307. "404": {
  11308. "$ref": "#/responses/notFound"
  11309. }
  11310. }
  11311. },
  11312. "put": {
  11313. "produces": [
  11314. "application/json"
  11315. ],
  11316. "tags": [
  11317. "organization"
  11318. ],
  11319. "summary": "Add a repository to a team",
  11320. "operationId": "orgAddTeamRepository",
  11321. "parameters": [
  11322. {
  11323. "type": "integer",
  11324. "format": "int64",
  11325. "description": "id of the team",
  11326. "name": "id",
  11327. "in": "path",
  11328. "required": true
  11329. },
  11330. {
  11331. "type": "string",
  11332. "description": "organization that owns the repo to add",
  11333. "name": "org",
  11334. "in": "path",
  11335. "required": true
  11336. },
  11337. {
  11338. "type": "string",
  11339. "description": "name of the repo to add",
  11340. "name": "repo",
  11341. "in": "path",
  11342. "required": true
  11343. }
  11344. ],
  11345. "responses": {
  11346. "204": {
  11347. "$ref": "#/responses/empty"
  11348. },
  11349. "403": {
  11350. "$ref": "#/responses/forbidden"
  11351. }
  11352. }
  11353. },
  11354. "delete": {
  11355. "description": "This does not delete the repository, it only removes the repository from the team.",
  11356. "produces": [
  11357. "application/json"
  11358. ],
  11359. "tags": [
  11360. "organization"
  11361. ],
  11362. "summary": "Remove a repository from a team",
  11363. "operationId": "orgRemoveTeamRepository",
  11364. "parameters": [
  11365. {
  11366. "type": "integer",
  11367. "format": "int64",
  11368. "description": "id of the team",
  11369. "name": "id",
  11370. "in": "path",
  11371. "required": true
  11372. },
  11373. {
  11374. "type": "string",
  11375. "description": "organization that owns the repo to remove",
  11376. "name": "org",
  11377. "in": "path",
  11378. "required": true
  11379. },
  11380. {
  11381. "type": "string",
  11382. "description": "name of the repo to remove",
  11383. "name": "repo",
  11384. "in": "path",
  11385. "required": true
  11386. }
  11387. ],
  11388. "responses": {
  11389. "204": {
  11390. "$ref": "#/responses/empty"
  11391. },
  11392. "403": {
  11393. "$ref": "#/responses/forbidden"
  11394. }
  11395. }
  11396. }
  11397. },
  11398. "/topics/search": {
  11399. "get": {
  11400. "produces": [
  11401. "application/json"
  11402. ],
  11403. "tags": [
  11404. "repository"
  11405. ],
  11406. "summary": "search topics via keyword",
  11407. "operationId": "topicSearch",
  11408. "parameters": [
  11409. {
  11410. "type": "string",
  11411. "description": "keywords to search",
  11412. "name": "q",
  11413. "in": "query",
  11414. "required": true
  11415. },
  11416. {
  11417. "type": "integer",
  11418. "description": "page number of results to return (1-based)",
  11419. "name": "page",
  11420. "in": "query"
  11421. },
  11422. {
  11423. "type": "integer",
  11424. "description": "page size of results",
  11425. "name": "limit",
  11426. "in": "query"
  11427. }
  11428. ],
  11429. "responses": {
  11430. "200": {
  11431. "$ref": "#/responses/TopicListResponse"
  11432. },
  11433. "403": {
  11434. "$ref": "#/responses/forbidden"
  11435. }
  11436. }
  11437. }
  11438. },
  11439. "/user": {
  11440. "get": {
  11441. "produces": [
  11442. "application/json"
  11443. ],
  11444. "tags": [
  11445. "user"
  11446. ],
  11447. "summary": "Get the authenticated user",
  11448. "operationId": "userGetCurrent",
  11449. "responses": {
  11450. "200": {
  11451. "$ref": "#/responses/User"
  11452. }
  11453. }
  11454. }
  11455. },
  11456. "/user/applications/oauth2": {
  11457. "get": {
  11458. "produces": [
  11459. "application/json"
  11460. ],
  11461. "tags": [
  11462. "user"
  11463. ],
  11464. "summary": "List the authenticated user's oauth2 applications",
  11465. "operationId": "userGetOauth2Application",
  11466. "parameters": [
  11467. {
  11468. "type": "integer",
  11469. "description": "page number of results to return (1-based)",
  11470. "name": "page",
  11471. "in": "query"
  11472. },
  11473. {
  11474. "type": "integer",
  11475. "description": "page size of results",
  11476. "name": "limit",
  11477. "in": "query"
  11478. }
  11479. ],
  11480. "responses": {
  11481. "200": {
  11482. "$ref": "#/responses/OAuth2ApplicationList"
  11483. }
  11484. }
  11485. },
  11486. "post": {
  11487. "produces": [
  11488. "application/json"
  11489. ],
  11490. "tags": [
  11491. "user"
  11492. ],
  11493. "summary": "creates a new OAuth2 application",
  11494. "operationId": "userCreateOAuth2Application",
  11495. "parameters": [
  11496. {
  11497. "name": "body",
  11498. "in": "body",
  11499. "required": true,
  11500. "schema": {
  11501. "$ref": "#/definitions/CreateOAuth2ApplicationOptions"
  11502. }
  11503. }
  11504. ],
  11505. "responses": {
  11506. "201": {
  11507. "$ref": "#/responses/OAuth2Application"
  11508. },
  11509. "400": {
  11510. "$ref": "#/responses/error"
  11511. }
  11512. }
  11513. }
  11514. },
  11515. "/user/applications/oauth2/{id}": {
  11516. "get": {
  11517. "produces": [
  11518. "application/json"
  11519. ],
  11520. "tags": [
  11521. "user"
  11522. ],
  11523. "summary": "get an OAuth2 Application",
  11524. "operationId": "userGetOAuth2Application",
  11525. "parameters": [
  11526. {
  11527. "type": "integer",
  11528. "format": "int64",
  11529. "description": "Application ID to be found",
  11530. "name": "id",
  11531. "in": "path",
  11532. "required": true
  11533. }
  11534. ],
  11535. "responses": {
  11536. "200": {
  11537. "$ref": "#/responses/OAuth2Application"
  11538. },
  11539. "404": {
  11540. "$ref": "#/responses/notFound"
  11541. }
  11542. }
  11543. },
  11544. "delete": {
  11545. "produces": [
  11546. "application/json"
  11547. ],
  11548. "tags": [
  11549. "user"
  11550. ],
  11551. "summary": "delete an OAuth2 Application",
  11552. "operationId": "userDeleteOAuth2Application",
  11553. "parameters": [
  11554. {
  11555. "type": "integer",
  11556. "format": "int64",
  11557. "description": "token to be deleted",
  11558. "name": "id",
  11559. "in": "path",
  11560. "required": true
  11561. }
  11562. ],
  11563. "responses": {
  11564. "204": {
  11565. "$ref": "#/responses/empty"
  11566. },
  11567. "404": {
  11568. "$ref": "#/responses/notFound"
  11569. }
  11570. }
  11571. },
  11572. "patch": {
  11573. "produces": [
  11574. "application/json"
  11575. ],
  11576. "tags": [
  11577. "user"
  11578. ],
  11579. "summary": "update an OAuth2 Application, this includes regenerating the client secret",
  11580. "operationId": "userUpdateOAuth2Application",
  11581. "parameters": [
  11582. {
  11583. "type": "integer",
  11584. "format": "int64",
  11585. "description": "application to be updated",
  11586. "name": "id",
  11587. "in": "path",
  11588. "required": true
  11589. },
  11590. {
  11591. "name": "body",
  11592. "in": "body",
  11593. "required": true,
  11594. "schema": {
  11595. "$ref": "#/definitions/CreateOAuth2ApplicationOptions"
  11596. }
  11597. }
  11598. ],
  11599. "responses": {
  11600. "200": {
  11601. "$ref": "#/responses/OAuth2Application"
  11602. },
  11603. "404": {
  11604. "$ref": "#/responses/notFound"
  11605. }
  11606. }
  11607. }
  11608. },
  11609. "/user/emails": {
  11610. "get": {
  11611. "produces": [
  11612. "application/json"
  11613. ],
  11614. "tags": [
  11615. "user"
  11616. ],
  11617. "summary": "List the authenticated user's email addresses",
  11618. "operationId": "userListEmails",
  11619. "responses": {
  11620. "200": {
  11621. "$ref": "#/responses/EmailList"
  11622. }
  11623. }
  11624. },
  11625. "post": {
  11626. "produces": [
  11627. "application/json"
  11628. ],
  11629. "tags": [
  11630. "user"
  11631. ],
  11632. "summary": "Add email addresses",
  11633. "operationId": "userAddEmail",
  11634. "parameters": [
  11635. {
  11636. "name": "body",
  11637. "in": "body",
  11638. "schema": {
  11639. "$ref": "#/definitions/CreateEmailOption"
  11640. }
  11641. }
  11642. ],
  11643. "responses": {
  11644. "201": {
  11645. "$ref": "#/responses/EmailList"
  11646. },
  11647. "422": {
  11648. "$ref": "#/responses/validationError"
  11649. }
  11650. }
  11651. },
  11652. "delete": {
  11653. "produces": [
  11654. "application/json"
  11655. ],
  11656. "tags": [
  11657. "user"
  11658. ],
  11659. "summary": "Delete email addresses",
  11660. "operationId": "userDeleteEmail",
  11661. "parameters": [
  11662. {
  11663. "name": "body",
  11664. "in": "body",
  11665. "schema": {
  11666. "$ref": "#/definitions/DeleteEmailOption"
  11667. }
  11668. }
  11669. ],
  11670. "responses": {
  11671. "204": {
  11672. "$ref": "#/responses/empty"
  11673. },
  11674. "404": {
  11675. "$ref": "#/responses/notFound"
  11676. }
  11677. }
  11678. }
  11679. },
  11680. "/user/followers": {
  11681. "get": {
  11682. "produces": [
  11683. "application/json"
  11684. ],
  11685. "tags": [
  11686. "user"
  11687. ],
  11688. "summary": "List the authenticated user's followers",
  11689. "operationId": "userCurrentListFollowers",
  11690. "parameters": [
  11691. {
  11692. "type": "integer",
  11693. "description": "page number of results to return (1-based)",
  11694. "name": "page",
  11695. "in": "query"
  11696. },
  11697. {
  11698. "type": "integer",
  11699. "description": "page size of results",
  11700. "name": "limit",
  11701. "in": "query"
  11702. }
  11703. ],
  11704. "responses": {
  11705. "200": {
  11706. "$ref": "#/responses/UserList"
  11707. }
  11708. }
  11709. }
  11710. },
  11711. "/user/following": {
  11712. "get": {
  11713. "produces": [
  11714. "application/json"
  11715. ],
  11716. "tags": [
  11717. "user"
  11718. ],
  11719. "summary": "List the users that the authenticated user is following",
  11720. "operationId": "userCurrentListFollowing",
  11721. "parameters": [
  11722. {
  11723. "type": "integer",
  11724. "description": "page number of results to return (1-based)",
  11725. "name": "page",
  11726. "in": "query"
  11727. },
  11728. {
  11729. "type": "integer",
  11730. "description": "page size of results",
  11731. "name": "limit",
  11732. "in": "query"
  11733. }
  11734. ],
  11735. "responses": {
  11736. "200": {
  11737. "$ref": "#/responses/UserList"
  11738. }
  11739. }
  11740. }
  11741. },
  11742. "/user/following/{username}": {
  11743. "get": {
  11744. "tags": [
  11745. "user"
  11746. ],
  11747. "summary": "Check whether a user is followed by the authenticated user",
  11748. "operationId": "userCurrentCheckFollowing",
  11749. "parameters": [
  11750. {
  11751. "type": "string",
  11752. "description": "username of followed user",
  11753. "name": "username",
  11754. "in": "path",
  11755. "required": true
  11756. }
  11757. ],
  11758. "responses": {
  11759. "204": {
  11760. "$ref": "#/responses/empty"
  11761. },
  11762. "404": {
  11763. "$ref": "#/responses/notFound"
  11764. }
  11765. }
  11766. },
  11767. "put": {
  11768. "tags": [
  11769. "user"
  11770. ],
  11771. "summary": "Follow a user",
  11772. "operationId": "userCurrentPutFollow",
  11773. "parameters": [
  11774. {
  11775. "type": "string",
  11776. "description": "username of user to follow",
  11777. "name": "username",
  11778. "in": "path",
  11779. "required": true
  11780. }
  11781. ],
  11782. "responses": {
  11783. "204": {
  11784. "$ref": "#/responses/empty"
  11785. }
  11786. }
  11787. },
  11788. "delete": {
  11789. "tags": [
  11790. "user"
  11791. ],
  11792. "summary": "Unfollow a user",
  11793. "operationId": "userCurrentDeleteFollow",
  11794. "parameters": [
  11795. {
  11796. "type": "string",
  11797. "description": "username of user to unfollow",
  11798. "name": "username",
  11799. "in": "path",
  11800. "required": true
  11801. }
  11802. ],
  11803. "responses": {
  11804. "204": {
  11805. "$ref": "#/responses/empty"
  11806. }
  11807. }
  11808. }
  11809. },
  11810. "/user/gpg_key_token": {
  11811. "get": {
  11812. "produces": [
  11813. "text/plain"
  11814. ],
  11815. "tags": [
  11816. "user"
  11817. ],
  11818. "summary": "Get a Token to verify",
  11819. "operationId": "getVerificationToken",
  11820. "responses": {
  11821. "200": {
  11822. "$ref": "#/responses/string"
  11823. },
  11824. "404": {
  11825. "$ref": "#/responses/notFound"
  11826. }
  11827. }
  11828. }
  11829. },
  11830. "/user/gpg_key_verify": {
  11831. "post": {
  11832. "consumes": [
  11833. "application/json"
  11834. ],
  11835. "produces": [
  11836. "application/json"
  11837. ],
  11838. "tags": [
  11839. "user"
  11840. ],
  11841. "summary": "Verify a GPG key",
  11842. "operationId": "userVerifyGPGKey",
  11843. "responses": {
  11844. "201": {
  11845. "$ref": "#/responses/GPGKey"
  11846. },
  11847. "404": {
  11848. "$ref": "#/responses/notFound"
  11849. },
  11850. "422": {
  11851. "$ref": "#/responses/validationError"
  11852. }
  11853. }
  11854. }
  11855. },
  11856. "/user/gpg_keys": {
  11857. "get": {
  11858. "produces": [
  11859. "application/json"
  11860. ],
  11861. "tags": [
  11862. "user"
  11863. ],
  11864. "summary": "List the authenticated user's GPG keys",
  11865. "operationId": "userCurrentListGPGKeys",
  11866. "parameters": [
  11867. {
  11868. "type": "integer",
  11869. "description": "page number of results to return (1-based)",
  11870. "name": "page",
  11871. "in": "query"
  11872. },
  11873. {
  11874. "type": "integer",
  11875. "description": "page size of results",
  11876. "name": "limit",
  11877. "in": "query"
  11878. }
  11879. ],
  11880. "responses": {
  11881. "200": {
  11882. "$ref": "#/responses/GPGKeyList"
  11883. }
  11884. }
  11885. },
  11886. "post": {
  11887. "consumes": [
  11888. "application/json"
  11889. ],
  11890. "produces": [
  11891. "application/json"
  11892. ],
  11893. "tags": [
  11894. "user"
  11895. ],
  11896. "summary": "Create a GPG key",
  11897. "operationId": "userCurrentPostGPGKey",
  11898. "parameters": [
  11899. {
  11900. "name": "Form",
  11901. "in": "body",
  11902. "schema": {
  11903. "$ref": "#/definitions/CreateGPGKeyOption"
  11904. }
  11905. }
  11906. ],
  11907. "responses": {
  11908. "201": {
  11909. "$ref": "#/responses/GPGKey"
  11910. },
  11911. "404": {
  11912. "$ref": "#/responses/notFound"
  11913. },
  11914. "422": {
  11915. "$ref": "#/responses/validationError"
  11916. }
  11917. }
  11918. }
  11919. },
  11920. "/user/gpg_keys/{id}": {
  11921. "get": {
  11922. "produces": [
  11923. "application/json"
  11924. ],
  11925. "tags": [
  11926. "user"
  11927. ],
  11928. "summary": "Get a GPG key",
  11929. "operationId": "userCurrentGetGPGKey",
  11930. "parameters": [
  11931. {
  11932. "type": "integer",
  11933. "format": "int64",
  11934. "description": "id of key to get",
  11935. "name": "id",
  11936. "in": "path",
  11937. "required": true
  11938. }
  11939. ],
  11940. "responses": {
  11941. "200": {
  11942. "$ref": "#/responses/GPGKey"
  11943. },
  11944. "404": {
  11945. "$ref": "#/responses/notFound"
  11946. }
  11947. }
  11948. },
  11949. "delete": {
  11950. "produces": [
  11951. "application/json"
  11952. ],
  11953. "tags": [
  11954. "user"
  11955. ],
  11956. "summary": "Remove a GPG key",
  11957. "operationId": "userCurrentDeleteGPGKey",
  11958. "parameters": [
  11959. {
  11960. "type": "integer",
  11961. "format": "int64",
  11962. "description": "id of key to delete",
  11963. "name": "id",
  11964. "in": "path",
  11965. "required": true
  11966. }
  11967. ],
  11968. "responses": {
  11969. "204": {
  11970. "$ref": "#/responses/empty"
  11971. },
  11972. "403": {
  11973. "$ref": "#/responses/forbidden"
  11974. },
  11975. "404": {
  11976. "$ref": "#/responses/notFound"
  11977. }
  11978. }
  11979. }
  11980. },
  11981. "/user/keys": {
  11982. "get": {
  11983. "produces": [
  11984. "application/json"
  11985. ],
  11986. "tags": [
  11987. "user"
  11988. ],
  11989. "summary": "List the authenticated user's public keys",
  11990. "operationId": "userCurrentListKeys",
  11991. "parameters": [
  11992. {
  11993. "type": "string",
  11994. "description": "fingerprint of the key",
  11995. "name": "fingerprint",
  11996. "in": "query"
  11997. },
  11998. {
  11999. "type": "integer",
  12000. "description": "page number of results to return (1-based)",
  12001. "name": "page",
  12002. "in": "query"
  12003. },
  12004. {
  12005. "type": "integer",
  12006. "description": "page size of results",
  12007. "name": "limit",
  12008. "in": "query"
  12009. }
  12010. ],
  12011. "responses": {
  12012. "200": {
  12013. "$ref": "#/responses/PublicKeyList"
  12014. }
  12015. }
  12016. },
  12017. "post": {
  12018. "consumes": [
  12019. "application/json"
  12020. ],
  12021. "produces": [
  12022. "application/json"
  12023. ],
  12024. "tags": [
  12025. "user"
  12026. ],
  12027. "summary": "Create a public key",
  12028. "operationId": "userCurrentPostKey",
  12029. "parameters": [
  12030. {
  12031. "name": "body",
  12032. "in": "body",
  12033. "schema": {
  12034. "$ref": "#/definitions/CreateKeyOption"
  12035. }
  12036. }
  12037. ],
  12038. "responses": {
  12039. "201": {
  12040. "$ref": "#/responses/PublicKey"
  12041. },
  12042. "422": {
  12043. "$ref": "#/responses/validationError"
  12044. }
  12045. }
  12046. }
  12047. },
  12048. "/user/keys/{id}": {
  12049. "get": {
  12050. "produces": [
  12051. "application/json"
  12052. ],
  12053. "tags": [
  12054. "user"
  12055. ],
  12056. "summary": "Get a public key",
  12057. "operationId": "userCurrentGetKey",
  12058. "parameters": [
  12059. {
  12060. "type": "integer",
  12061. "format": "int64",
  12062. "description": "id of key to get",
  12063. "name": "id",
  12064. "in": "path",
  12065. "required": true
  12066. }
  12067. ],
  12068. "responses": {
  12069. "200": {
  12070. "$ref": "#/responses/PublicKey"
  12071. },
  12072. "404": {
  12073. "$ref": "#/responses/notFound"
  12074. }
  12075. }
  12076. },
  12077. "delete": {
  12078. "produces": [
  12079. "application/json"
  12080. ],
  12081. "tags": [
  12082. "user"
  12083. ],
  12084. "summary": "Delete a public key",
  12085. "operationId": "userCurrentDeleteKey",
  12086. "parameters": [
  12087. {
  12088. "type": "integer",
  12089. "format": "int64",
  12090. "description": "id of key to delete",
  12091. "name": "id",
  12092. "in": "path",
  12093. "required": true
  12094. }
  12095. ],
  12096. "responses": {
  12097. "204": {
  12098. "$ref": "#/responses/empty"
  12099. },
  12100. "403": {
  12101. "$ref": "#/responses/forbidden"
  12102. },
  12103. "404": {
  12104. "$ref": "#/responses/notFound"
  12105. }
  12106. }
  12107. }
  12108. },
  12109. "/user/orgs": {
  12110. "get": {
  12111. "produces": [
  12112. "application/json"
  12113. ],
  12114. "tags": [
  12115. "organization"
  12116. ],
  12117. "summary": "List the current user's organizations",
  12118. "operationId": "orgListCurrentUserOrgs",
  12119. "parameters": [
  12120. {
  12121. "type": "integer",
  12122. "description": "page number of results to return (1-based)",
  12123. "name": "page",
  12124. "in": "query"
  12125. },
  12126. {
  12127. "type": "integer",
  12128. "description": "page size of results",
  12129. "name": "limit",
  12130. "in": "query"
  12131. }
  12132. ],
  12133. "responses": {
  12134. "200": {
  12135. "$ref": "#/responses/OrganizationList"
  12136. }
  12137. }
  12138. }
  12139. },
  12140. "/user/repos": {
  12141. "get": {
  12142. "produces": [
  12143. "application/json"
  12144. ],
  12145. "tags": [
  12146. "user"
  12147. ],
  12148. "summary": "List the repos that the authenticated user owns",
  12149. "operationId": "userCurrentListRepos",
  12150. "parameters": [
  12151. {
  12152. "type": "integer",
  12153. "description": "page number of results to return (1-based)",
  12154. "name": "page",
  12155. "in": "query"
  12156. },
  12157. {
  12158. "type": "integer",
  12159. "description": "page size of results",
  12160. "name": "limit",
  12161. "in": "query"
  12162. }
  12163. ],
  12164. "responses": {
  12165. "200": {
  12166. "$ref": "#/responses/RepositoryList"
  12167. }
  12168. }
  12169. },
  12170. "post": {
  12171. "consumes": [
  12172. "application/json"
  12173. ],
  12174. "produces": [
  12175. "application/json"
  12176. ],
  12177. "tags": [
  12178. "repository",
  12179. "user"
  12180. ],
  12181. "summary": "Create a repository",
  12182. "operationId": "createCurrentUserRepo",
  12183. "parameters": [
  12184. {
  12185. "name": "body",
  12186. "in": "body",
  12187. "schema": {
  12188. "$ref": "#/definitions/CreateRepoOption"
  12189. }
  12190. }
  12191. ],
  12192. "responses": {
  12193. "201": {
  12194. "$ref": "#/responses/Repository"
  12195. },
  12196. "409": {
  12197. "description": "The repository with the same name already exists."
  12198. },
  12199. "422": {
  12200. "$ref": "#/responses/validationError"
  12201. }
  12202. }
  12203. }
  12204. },
  12205. "/user/settings": {
  12206. "get": {
  12207. "produces": [
  12208. "application/json"
  12209. ],
  12210. "tags": [
  12211. "user"
  12212. ],
  12213. "summary": "Get user settings",
  12214. "operationId": "getUserSettings",
  12215. "responses": {
  12216. "200": {
  12217. "$ref": "#/responses/UserSettings"
  12218. }
  12219. }
  12220. },
  12221. "patch": {
  12222. "produces": [
  12223. "application/json"
  12224. ],
  12225. "tags": [
  12226. "user"
  12227. ],
  12228. "summary": "Update user settings",
  12229. "operationId": "updateUserSettings",
  12230. "parameters": [
  12231. {
  12232. "name": "body",
  12233. "in": "body",
  12234. "schema": {
  12235. "$ref": "#/definitions/UserSettingsOptions"
  12236. }
  12237. }
  12238. ],
  12239. "responses": {
  12240. "200": {
  12241. "$ref": "#/responses/UserSettings"
  12242. }
  12243. }
  12244. }
  12245. },
  12246. "/user/starred": {
  12247. "get": {
  12248. "produces": [
  12249. "application/json"
  12250. ],
  12251. "tags": [
  12252. "user"
  12253. ],
  12254. "summary": "The repos that the authenticated user has starred",
  12255. "operationId": "userCurrentListStarred",
  12256. "parameters": [
  12257. {
  12258. "type": "integer",
  12259. "description": "page number of results to return (1-based)",
  12260. "name": "page",
  12261. "in": "query"
  12262. },
  12263. {
  12264. "type": "integer",
  12265. "description": "page size of results",
  12266. "name": "limit",
  12267. "in": "query"
  12268. }
  12269. ],
  12270. "responses": {
  12271. "200": {
  12272. "$ref": "#/responses/RepositoryList"
  12273. }
  12274. }
  12275. }
  12276. },
  12277. "/user/starred/{owner}/{repo}": {
  12278. "get": {
  12279. "tags": [
  12280. "user"
  12281. ],
  12282. "summary": "Whether the authenticated is starring the repo",
  12283. "operationId": "userCurrentCheckStarring",
  12284. "parameters": [
  12285. {
  12286. "type": "string",
  12287. "description": "owner of the repo",
  12288. "name": "owner",
  12289. "in": "path",
  12290. "required": true
  12291. },
  12292. {
  12293. "type": "string",
  12294. "description": "name of the repo",
  12295. "name": "repo",
  12296. "in": "path",
  12297. "required": true
  12298. }
  12299. ],
  12300. "responses": {
  12301. "204": {
  12302. "$ref": "#/responses/empty"
  12303. },
  12304. "404": {
  12305. "$ref": "#/responses/notFound"
  12306. }
  12307. }
  12308. },
  12309. "put": {
  12310. "tags": [
  12311. "user"
  12312. ],
  12313. "summary": "Star the given repo",
  12314. "operationId": "userCurrentPutStar",
  12315. "parameters": [
  12316. {
  12317. "type": "string",
  12318. "description": "owner of the repo to star",
  12319. "name": "owner",
  12320. "in": "path",
  12321. "required": true
  12322. },
  12323. {
  12324. "type": "string",
  12325. "description": "name of the repo to star",
  12326. "name": "repo",
  12327. "in": "path",
  12328. "required": true
  12329. }
  12330. ],
  12331. "responses": {
  12332. "204": {
  12333. "$ref": "#/responses/empty"
  12334. }
  12335. }
  12336. },
  12337. "delete": {
  12338. "tags": [
  12339. "user"
  12340. ],
  12341. "summary": "Unstar the given repo",
  12342. "operationId": "userCurrentDeleteStar",
  12343. "parameters": [
  12344. {
  12345. "type": "string",
  12346. "description": "owner of the repo to unstar",
  12347. "name": "owner",
  12348. "in": "path",
  12349. "required": true
  12350. },
  12351. {
  12352. "type": "string",
  12353. "description": "name of the repo to unstar",
  12354. "name": "repo",
  12355. "in": "path",
  12356. "required": true
  12357. }
  12358. ],
  12359. "responses": {
  12360. "204": {
  12361. "$ref": "#/responses/empty"
  12362. }
  12363. }
  12364. }
  12365. },
  12366. "/user/stopwatches": {
  12367. "get": {
  12368. "consumes": [
  12369. "application/json"
  12370. ],
  12371. "produces": [
  12372. "application/json"
  12373. ],
  12374. "tags": [
  12375. "user"
  12376. ],
  12377. "summary": "Get list of all existing stopwatches",
  12378. "operationId": "userGetStopWatches",
  12379. "parameters": [
  12380. {
  12381. "type": "integer",
  12382. "description": "page number of results to return (1-based)",
  12383. "name": "page",
  12384. "in": "query"
  12385. },
  12386. {
  12387. "type": "integer",
  12388. "description": "page size of results",
  12389. "name": "limit",
  12390. "in": "query"
  12391. }
  12392. ],
  12393. "responses": {
  12394. "200": {
  12395. "$ref": "#/responses/StopWatchList"
  12396. }
  12397. }
  12398. }
  12399. },
  12400. "/user/subscriptions": {
  12401. "get": {
  12402. "produces": [
  12403. "application/json"
  12404. ],
  12405. "tags": [
  12406. "user"
  12407. ],
  12408. "summary": "List repositories watched by the authenticated user",
  12409. "operationId": "userCurrentListSubscriptions",
  12410. "parameters": [
  12411. {
  12412. "type": "integer",
  12413. "description": "page number of results to return (1-based)",
  12414. "name": "page",
  12415. "in": "query"
  12416. },
  12417. {
  12418. "type": "integer",
  12419. "description": "page size of results",
  12420. "name": "limit",
  12421. "in": "query"
  12422. }
  12423. ],
  12424. "responses": {
  12425. "200": {
  12426. "$ref": "#/responses/RepositoryList"
  12427. }
  12428. }
  12429. }
  12430. },
  12431. "/user/teams": {
  12432. "get": {
  12433. "produces": [
  12434. "application/json"
  12435. ],
  12436. "tags": [
  12437. "user"
  12438. ],
  12439. "summary": "List all the teams a user belongs to",
  12440. "operationId": "userListTeams",
  12441. "parameters": [
  12442. {
  12443. "type": "integer",
  12444. "description": "page number of results to return (1-based)",
  12445. "name": "page",
  12446. "in": "query"
  12447. },
  12448. {
  12449. "type": "integer",
  12450. "description": "page size of results",
  12451. "name": "limit",
  12452. "in": "query"
  12453. }
  12454. ],
  12455. "responses": {
  12456. "200": {
  12457. "$ref": "#/responses/TeamList"
  12458. }
  12459. }
  12460. }
  12461. },
  12462. "/user/times": {
  12463. "get": {
  12464. "produces": [
  12465. "application/json"
  12466. ],
  12467. "tags": [
  12468. "user"
  12469. ],
  12470. "summary": "List the current user's tracked times",
  12471. "operationId": "userCurrentTrackedTimes",
  12472. "parameters": [
  12473. {
  12474. "type": "string",
  12475. "format": "date-time",
  12476. "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format",
  12477. "name": "since",
  12478. "in": "query"
  12479. },
  12480. {
  12481. "type": "string",
  12482. "format": "date-time",
  12483. "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format",
  12484. "name": "before",
  12485. "in": "query"
  12486. }
  12487. ],
  12488. "responses": {
  12489. "200": {
  12490. "$ref": "#/responses/TrackedTimeList"
  12491. }
  12492. }
  12493. }
  12494. },
  12495. "/users/search": {
  12496. "get": {
  12497. "produces": [
  12498. "application/json"
  12499. ],
  12500. "tags": [
  12501. "user"
  12502. ],
  12503. "summary": "Search for users",
  12504. "operationId": "userSearch",
  12505. "parameters": [
  12506. {
  12507. "type": "string",
  12508. "description": "keyword",
  12509. "name": "q",
  12510. "in": "query"
  12511. },
  12512. {
  12513. "type": "integer",
  12514. "format": "int64",
  12515. "description": "ID of the user to search for",
  12516. "name": "uid",
  12517. "in": "query"
  12518. },
  12519. {
  12520. "type": "integer",
  12521. "description": "page number of results to return (1-based)",
  12522. "name": "page",
  12523. "in": "query"
  12524. },
  12525. {
  12526. "type": "integer",
  12527. "description": "page size of results",
  12528. "name": "limit",
  12529. "in": "query"
  12530. }
  12531. ],
  12532. "responses": {
  12533. "200": {
  12534. "description": "SearchResults of a successful search",
  12535. "schema": {
  12536. "type": "object",
  12537. "properties": {
  12538. "data": {
  12539. "type": "array",
  12540. "items": {
  12541. "$ref": "#/definitions/User"
  12542. }
  12543. },
  12544. "ok": {
  12545. "type": "boolean"
  12546. }
  12547. }
  12548. }
  12549. }
  12550. }
  12551. }
  12552. },
  12553. "/users/{username}": {
  12554. "get": {
  12555. "produces": [
  12556. "application/json"
  12557. ],
  12558. "tags": [
  12559. "user"
  12560. ],
  12561. "summary": "Get a user",
  12562. "operationId": "userGet",
  12563. "parameters": [
  12564. {
  12565. "type": "string",
  12566. "description": "username of user to get",
  12567. "name": "username",
  12568. "in": "path",
  12569. "required": true
  12570. }
  12571. ],
  12572. "responses": {
  12573. "200": {
  12574. "$ref": "#/responses/User"
  12575. },
  12576. "404": {
  12577. "$ref": "#/responses/notFound"
  12578. }
  12579. }
  12580. }
  12581. },
  12582. "/users/{username}/followers": {
  12583. "get": {
  12584. "produces": [
  12585. "application/json"
  12586. ],
  12587. "tags": [
  12588. "user"
  12589. ],
  12590. "summary": "List the given user's followers",
  12591. "operationId": "userListFollowers",
  12592. "parameters": [
  12593. {
  12594. "type": "string",
  12595. "description": "username of user",
  12596. "name": "username",
  12597. "in": "path",
  12598. "required": true
  12599. },
  12600. {
  12601. "type": "integer",
  12602. "description": "page number of results to return (1-based)",
  12603. "name": "page",
  12604. "in": "query"
  12605. },
  12606. {
  12607. "type": "integer",
  12608. "description": "page size of results",
  12609. "name": "limit",
  12610. "in": "query"
  12611. }
  12612. ],
  12613. "responses": {
  12614. "200": {
  12615. "$ref": "#/responses/UserList"
  12616. }
  12617. }
  12618. }
  12619. },
  12620. "/users/{username}/following": {
  12621. "get": {
  12622. "produces": [
  12623. "application/json"
  12624. ],
  12625. "tags": [
  12626. "user"
  12627. ],
  12628. "summary": "List the users that the given user is following",
  12629. "operationId": "userListFollowing",
  12630. "parameters": [
  12631. {
  12632. "type": "string",
  12633. "description": "username of user",
  12634. "name": "username",
  12635. "in": "path",
  12636. "required": true
  12637. },
  12638. {
  12639. "type": "integer",
  12640. "description": "page number of results to return (1-based)",
  12641. "name": "page",
  12642. "in": "query"
  12643. },
  12644. {
  12645. "type": "integer",
  12646. "description": "page size of results",
  12647. "name": "limit",
  12648. "in": "query"
  12649. }
  12650. ],
  12651. "responses": {
  12652. "200": {
  12653. "$ref": "#/responses/UserList"
  12654. }
  12655. }
  12656. }
  12657. },
  12658. "/users/{username}/following/{target}": {
  12659. "get": {
  12660. "tags": [
  12661. "user"
  12662. ],
  12663. "summary": "Check if one user is following another user",
  12664. "operationId": "userCheckFollowing",
  12665. "parameters": [
  12666. {
  12667. "type": "string",
  12668. "description": "username of following user",
  12669. "name": "username",
  12670. "in": "path",
  12671. "required": true
  12672. },
  12673. {
  12674. "type": "string",
  12675. "description": "username of followed user",
  12676. "name": "target",
  12677. "in": "path",
  12678. "required": true
  12679. }
  12680. ],
  12681. "responses": {
  12682. "204": {
  12683. "$ref": "#/responses/empty"
  12684. },
  12685. "404": {
  12686. "$ref": "#/responses/notFound"
  12687. }
  12688. }
  12689. }
  12690. },
  12691. "/users/{username}/gpg_keys": {
  12692. "get": {
  12693. "produces": [
  12694. "application/json"
  12695. ],
  12696. "tags": [
  12697. "user"
  12698. ],
  12699. "summary": "List the given user's GPG keys",
  12700. "operationId": "userListGPGKeys",
  12701. "parameters": [
  12702. {
  12703. "type": "string",
  12704. "description": "username of user",
  12705. "name": "username",
  12706. "in": "path",
  12707. "required": true
  12708. },
  12709. {
  12710. "type": "integer",
  12711. "description": "page number of results to return (1-based)",
  12712. "name": "page",
  12713. "in": "query"
  12714. },
  12715. {
  12716. "type": "integer",
  12717. "description": "page size of results",
  12718. "name": "limit",
  12719. "in": "query"
  12720. }
  12721. ],
  12722. "responses": {
  12723. "200": {
  12724. "$ref": "#/responses/GPGKeyList"
  12725. }
  12726. }
  12727. }
  12728. },
  12729. "/users/{username}/heatmap": {
  12730. "get": {
  12731. "produces": [
  12732. "application/json"
  12733. ],
  12734. "tags": [
  12735. "user"
  12736. ],
  12737. "summary": "Get a user's heatmap",
  12738. "operationId": "userGetHeatmapData",
  12739. "parameters": [
  12740. {
  12741. "type": "string",
  12742. "description": "username of user to get",
  12743. "name": "username",
  12744. "in": "path",
  12745. "required": true
  12746. }
  12747. ],
  12748. "responses": {
  12749. "200": {
  12750. "$ref": "#/responses/UserHeatmapData"
  12751. },
  12752. "404": {
  12753. "$ref": "#/responses/notFound"
  12754. }
  12755. }
  12756. }
  12757. },
  12758. "/users/{username}/keys": {
  12759. "get": {
  12760. "produces": [
  12761. "application/json"
  12762. ],
  12763. "tags": [
  12764. "user"
  12765. ],
  12766. "summary": "List the given user's public keys",
  12767. "operationId": "userListKeys",
  12768. "parameters": [
  12769. {
  12770. "type": "string",
  12771. "description": "username of user",
  12772. "name": "username",
  12773. "in": "path",
  12774. "required": true
  12775. },
  12776. {
  12777. "type": "string",
  12778. "description": "fingerprint of the key",
  12779. "name": "fingerprint",
  12780. "in": "query"
  12781. },
  12782. {
  12783. "type": "integer",
  12784. "description": "page number of results to return (1-based)",
  12785. "name": "page",
  12786. "in": "query"
  12787. },
  12788. {
  12789. "type": "integer",
  12790. "description": "page size of results",
  12791. "name": "limit",
  12792. "in": "query"
  12793. }
  12794. ],
  12795. "responses": {
  12796. "200": {
  12797. "$ref": "#/responses/PublicKeyList"
  12798. }
  12799. }
  12800. }
  12801. },
  12802. "/users/{username}/orgs": {
  12803. "get": {
  12804. "produces": [
  12805. "application/json"
  12806. ],
  12807. "tags": [
  12808. "organization"
  12809. ],
  12810. "summary": "List a user's organizations",
  12811. "operationId": "orgListUserOrgs",
  12812. "parameters": [
  12813. {
  12814. "type": "string",
  12815. "description": "username of user",
  12816. "name": "username",
  12817. "in": "path",
  12818. "required": true
  12819. },
  12820. {
  12821. "type": "integer",
  12822. "description": "page number of results to return (1-based)",
  12823. "name": "page",
  12824. "in": "query"
  12825. },
  12826. {
  12827. "type": "integer",
  12828. "description": "page size of results",
  12829. "name": "limit",
  12830. "in": "query"
  12831. }
  12832. ],
  12833. "responses": {
  12834. "200": {
  12835. "$ref": "#/responses/OrganizationList"
  12836. }
  12837. }
  12838. }
  12839. },
  12840. "/users/{username}/orgs/{org}/permissions": {
  12841. "get": {
  12842. "produces": [
  12843. "application/json"
  12844. ],
  12845. "tags": [
  12846. "organization"
  12847. ],
  12848. "summary": "Get user permissions in organization",
  12849. "operationId": "orgGetUserPermissions",
  12850. "parameters": [
  12851. {
  12852. "type": "string",
  12853. "description": "username of user",
  12854. "name": "username",
  12855. "in": "path",
  12856. "required": true
  12857. },
  12858. {
  12859. "type": "string",
  12860. "description": "name of the organization",
  12861. "name": "org",
  12862. "in": "path",
  12863. "required": true
  12864. }
  12865. ],
  12866. "responses": {
  12867. "200": {
  12868. "$ref": "#/responses/OrganizationPermissions"
  12869. },
  12870. "403": {
  12871. "$ref": "#/responses/forbidden"
  12872. },
  12873. "404": {
  12874. "$ref": "#/responses/notFound"
  12875. }
  12876. }
  12877. }
  12878. },
  12879. "/users/{username}/repos": {
  12880. "get": {
  12881. "produces": [
  12882. "application/json"
  12883. ],
  12884. "tags": [
  12885. "user"
  12886. ],
  12887. "summary": "List the repos owned by the given user",
  12888. "operationId": "userListRepos",
  12889. "parameters": [
  12890. {
  12891. "type": "string",
  12892. "description": "username of user",
  12893. "name": "username",
  12894. "in": "path",
  12895. "required": true
  12896. },
  12897. {
  12898. "type": "integer",
  12899. "description": "page number of results to return (1-based)",
  12900. "name": "page",
  12901. "in": "query"
  12902. },
  12903. {
  12904. "type": "integer",
  12905. "description": "page size of results",
  12906. "name": "limit",
  12907. "in": "query"
  12908. }
  12909. ],
  12910. "responses": {
  12911. "200": {
  12912. "$ref": "#/responses/RepositoryList"
  12913. }
  12914. }
  12915. }
  12916. },
  12917. "/users/{username}/starred": {
  12918. "get": {
  12919. "produces": [
  12920. "application/json"
  12921. ],
  12922. "tags": [
  12923. "user"
  12924. ],
  12925. "summary": "The repos that the given user has starred",
  12926. "operationId": "userListStarred",
  12927. "parameters": [
  12928. {
  12929. "type": "string",
  12930. "description": "username of user",
  12931. "name": "username",
  12932. "in": "path",
  12933. "required": true
  12934. },
  12935. {
  12936. "type": "integer",
  12937. "description": "page number of results to return (1-based)",
  12938. "name": "page",
  12939. "in": "query"
  12940. },
  12941. {
  12942. "type": "integer",
  12943. "description": "page size of results",
  12944. "name": "limit",
  12945. "in": "query"
  12946. }
  12947. ],
  12948. "responses": {
  12949. "200": {
  12950. "$ref": "#/responses/RepositoryList"
  12951. }
  12952. }
  12953. }
  12954. },
  12955. "/users/{username}/subscriptions": {
  12956. "get": {
  12957. "produces": [
  12958. "application/json"
  12959. ],
  12960. "tags": [
  12961. "user"
  12962. ],
  12963. "summary": "List the repositories watched by a user",
  12964. "operationId": "userListSubscriptions",
  12965. "parameters": [
  12966. {
  12967. "type": "string",
  12968. "description": "username of the user",
  12969. "name": "username",
  12970. "in": "path",
  12971. "required": true
  12972. },
  12973. {
  12974. "type": "integer",
  12975. "description": "page number of results to return (1-based)",
  12976. "name": "page",
  12977. "in": "query"
  12978. },
  12979. {
  12980. "type": "integer",
  12981. "description": "page size of results",
  12982. "name": "limit",
  12983. "in": "query"
  12984. }
  12985. ],
  12986. "responses": {
  12987. "200": {
  12988. "$ref": "#/responses/RepositoryList"
  12989. }
  12990. }
  12991. }
  12992. },
  12993. "/users/{username}/tokens": {
  12994. "get": {
  12995. "produces": [
  12996. "application/json"
  12997. ],
  12998. "tags": [
  12999. "user"
  13000. ],
  13001. "summary": "List the authenticated user's access tokens",
  13002. "operationId": "userGetTokens",
  13003. "parameters": [
  13004. {
  13005. "type": "string",
  13006. "description": "username of user",
  13007. "name": "username",
  13008. "in": "path",
  13009. "required": true
  13010. },
  13011. {
  13012. "type": "integer",
  13013. "description": "page number of results to return (1-based)",
  13014. "name": "page",
  13015. "in": "query"
  13016. },
  13017. {
  13018. "type": "integer",
  13019. "description": "page size of results",
  13020. "name": "limit",
  13021. "in": "query"
  13022. }
  13023. ],
  13024. "responses": {
  13025. "200": {
  13026. "$ref": "#/responses/AccessTokenList"
  13027. }
  13028. }
  13029. },
  13030. "post": {
  13031. "consumes": [
  13032. "application/json"
  13033. ],
  13034. "produces": [
  13035. "application/json"
  13036. ],
  13037. "tags": [
  13038. "user"
  13039. ],
  13040. "summary": "Create an access token",
  13041. "operationId": "userCreateToken",
  13042. "parameters": [
  13043. {
  13044. "type": "string",
  13045. "x-go-name": "Name",
  13046. "description": "username of user",
  13047. "name": "username",
  13048. "in": "path",
  13049. "required": true
  13050. },
  13051. {
  13052. "name": "userCreateToken",
  13053. "in": "body",
  13054. "schema": {
  13055. "$ref": "#/definitions/CreateAccessTokenOption"
  13056. }
  13057. }
  13058. ],
  13059. "responses": {
  13060. "201": {
  13061. "$ref": "#/responses/AccessToken"
  13062. },
  13063. "400": {
  13064. "$ref": "#/responses/error"
  13065. }
  13066. }
  13067. }
  13068. },
  13069. "/users/{username}/tokens/{token}": {
  13070. "delete": {
  13071. "produces": [
  13072. "application/json"
  13073. ],
  13074. "tags": [
  13075. "user"
  13076. ],
  13077. "summary": "delete an access token",
  13078. "operationId": "userDeleteAccessToken",
  13079. "parameters": [
  13080. {
  13081. "type": "string",
  13082. "description": "username of user",
  13083. "name": "username",
  13084. "in": "path",
  13085. "required": true
  13086. },
  13087. {
  13088. "type": "string",
  13089. "description": "token to be deleted, identified by ID and if not available by name",
  13090. "name": "token",
  13091. "in": "path",
  13092. "required": true
  13093. }
  13094. ],
  13095. "responses": {
  13096. "204": {
  13097. "$ref": "#/responses/empty"
  13098. },
  13099. "404": {
  13100. "$ref": "#/responses/notFound"
  13101. },
  13102. "422": {
  13103. "$ref": "#/responses/error"
  13104. }
  13105. }
  13106. }
  13107. },
  13108. "/version": {
  13109. "get": {
  13110. "produces": [
  13111. "application/json"
  13112. ],
  13113. "tags": [
  13114. "miscellaneous"
  13115. ],
  13116. "summary": "Returns the version of the Gitea application",
  13117. "operationId": "getVersion",
  13118. "responses": {
  13119. "200": {
  13120. "$ref": "#/responses/ServerVersion"
  13121. }
  13122. }
  13123. }
  13124. }
  13125. },
  13126. "definitions": {
  13127. "APIError": {
  13128. "description": "APIError is an api error with a message",
  13129. "type": "object",
  13130. "properties": {
  13131. "message": {
  13132. "type": "string",
  13133. "x-go-name": "Message"
  13134. },
  13135. "url": {
  13136. "type": "string",
  13137. "x-go-name": "URL"
  13138. }
  13139. },
  13140. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13141. },
  13142. "AccessToken": {
  13143. "type": "object",
  13144. "title": "AccessToken represents an API access token.",
  13145. "properties": {
  13146. "id": {
  13147. "type": "integer",
  13148. "format": "int64",
  13149. "x-go-name": "ID"
  13150. },
  13151. "name": {
  13152. "type": "string",
  13153. "x-go-name": "Name"
  13154. },
  13155. "sha1": {
  13156. "type": "string",
  13157. "x-go-name": "Token"
  13158. },
  13159. "token_last_eight": {
  13160. "type": "string",
  13161. "x-go-name": "TokenLastEight"
  13162. }
  13163. },
  13164. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13165. },
  13166. "ActivityPub": {
  13167. "description": "ActivityPub type",
  13168. "type": "object",
  13169. "properties": {
  13170. "@context": {
  13171. "type": "string",
  13172. "x-go-name": "Context"
  13173. }
  13174. },
  13175. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13176. },
  13177. "AddCollaboratorOption": {
  13178. "description": "AddCollaboratorOption options when adding a user as a collaborator of a repository",
  13179. "type": "object",
  13180. "properties": {
  13181. "permission": {
  13182. "type": "string",
  13183. "x-go-name": "Permission"
  13184. }
  13185. },
  13186. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13187. },
  13188. "AddTimeOption": {
  13189. "description": "AddTimeOption options for adding time to an issue",
  13190. "type": "object",
  13191. "required": [
  13192. "time"
  13193. ],
  13194. "properties": {
  13195. "created": {
  13196. "type": "string",
  13197. "format": "date-time",
  13198. "x-go-name": "Created"
  13199. },
  13200. "time": {
  13201. "description": "time in seconds",
  13202. "type": "integer",
  13203. "format": "int64",
  13204. "x-go-name": "Time"
  13205. },
  13206. "user_name": {
  13207. "description": "User who spent the time (optional)",
  13208. "type": "string",
  13209. "x-go-name": "User"
  13210. }
  13211. },
  13212. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13213. },
  13214. "AnnotatedTag": {
  13215. "description": "AnnotatedTag represents an annotated tag",
  13216. "type": "object",
  13217. "properties": {
  13218. "message": {
  13219. "type": "string",
  13220. "x-go-name": "Message"
  13221. },
  13222. "object": {
  13223. "$ref": "#/definitions/AnnotatedTagObject"
  13224. },
  13225. "sha": {
  13226. "type": "string",
  13227. "x-go-name": "SHA"
  13228. },
  13229. "tag": {
  13230. "type": "string",
  13231. "x-go-name": "Tag"
  13232. },
  13233. "tagger": {
  13234. "$ref": "#/definitions/CommitUser"
  13235. },
  13236. "url": {
  13237. "type": "string",
  13238. "x-go-name": "URL"
  13239. },
  13240. "verification": {
  13241. "$ref": "#/definitions/PayloadCommitVerification"
  13242. }
  13243. },
  13244. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13245. },
  13246. "AnnotatedTagObject": {
  13247. "description": "AnnotatedTagObject contains meta information of the tag object",
  13248. "type": "object",
  13249. "properties": {
  13250. "sha": {
  13251. "type": "string",
  13252. "x-go-name": "SHA"
  13253. },
  13254. "type": {
  13255. "type": "string",
  13256. "x-go-name": "Type"
  13257. },
  13258. "url": {
  13259. "type": "string",
  13260. "x-go-name": "URL"
  13261. }
  13262. },
  13263. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13264. },
  13265. "Attachment": {
  13266. "description": "Attachment a generic attachment",
  13267. "type": "object",
  13268. "properties": {
  13269. "browser_download_url": {
  13270. "type": "string",
  13271. "x-go-name": "DownloadURL"
  13272. },
  13273. "created_at": {
  13274. "type": "string",
  13275. "format": "date-time",
  13276. "x-go-name": "Created"
  13277. },
  13278. "download_count": {
  13279. "type": "integer",
  13280. "format": "int64",
  13281. "x-go-name": "DownloadCount"
  13282. },
  13283. "id": {
  13284. "type": "integer",
  13285. "format": "int64",
  13286. "x-go-name": "ID"
  13287. },
  13288. "name": {
  13289. "type": "string",
  13290. "x-go-name": "Name"
  13291. },
  13292. "size": {
  13293. "type": "integer",
  13294. "format": "int64",
  13295. "x-go-name": "Size"
  13296. },
  13297. "uuid": {
  13298. "type": "string",
  13299. "x-go-name": "UUID"
  13300. }
  13301. },
  13302. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13303. },
  13304. "Branch": {
  13305. "description": "Branch represents a repository branch",
  13306. "type": "object",
  13307. "properties": {
  13308. "commit": {
  13309. "$ref": "#/definitions/PayloadCommit"
  13310. },
  13311. "effective_branch_protection_name": {
  13312. "type": "string",
  13313. "x-go-name": "EffectiveBranchProtectionName"
  13314. },
  13315. "enable_status_check": {
  13316. "type": "boolean",
  13317. "x-go-name": "EnableStatusCheck"
  13318. },
  13319. "name": {
  13320. "type": "string",
  13321. "x-go-name": "Name"
  13322. },
  13323. "protected": {
  13324. "type": "boolean",
  13325. "x-go-name": "Protected"
  13326. },
  13327. "required_approvals": {
  13328. "type": "integer",
  13329. "format": "int64",
  13330. "x-go-name": "RequiredApprovals"
  13331. },
  13332. "status_check_contexts": {
  13333. "type": "array",
  13334. "items": {
  13335. "type": "string"
  13336. },
  13337. "x-go-name": "StatusCheckContexts"
  13338. },
  13339. "user_can_merge": {
  13340. "type": "boolean",
  13341. "x-go-name": "UserCanMerge"
  13342. },
  13343. "user_can_push": {
  13344. "type": "boolean",
  13345. "x-go-name": "UserCanPush"
  13346. }
  13347. },
  13348. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13349. },
  13350. "BranchProtection": {
  13351. "description": "BranchProtection represents a branch protection for a repository",
  13352. "type": "object",
  13353. "properties": {
  13354. "approvals_whitelist_teams": {
  13355. "type": "array",
  13356. "items": {
  13357. "type": "string"
  13358. },
  13359. "x-go-name": "ApprovalsWhitelistTeams"
  13360. },
  13361. "approvals_whitelist_username": {
  13362. "type": "array",
  13363. "items": {
  13364. "type": "string"
  13365. },
  13366. "x-go-name": "ApprovalsWhitelistUsernames"
  13367. },
  13368. "block_on_official_review_requests": {
  13369. "type": "boolean",
  13370. "x-go-name": "BlockOnOfficialReviewRequests"
  13371. },
  13372. "block_on_outdated_branch": {
  13373. "type": "boolean",
  13374. "x-go-name": "BlockOnOutdatedBranch"
  13375. },
  13376. "block_on_rejected_reviews": {
  13377. "type": "boolean",
  13378. "x-go-name": "BlockOnRejectedReviews"
  13379. },
  13380. "branch_name": {
  13381. "type": "string",
  13382. "x-go-name": "BranchName"
  13383. },
  13384. "created_at": {
  13385. "type": "string",
  13386. "format": "date-time",
  13387. "x-go-name": "Created"
  13388. },
  13389. "dismiss_stale_approvals": {
  13390. "type": "boolean",
  13391. "x-go-name": "DismissStaleApprovals"
  13392. },
  13393. "enable_approvals_whitelist": {
  13394. "type": "boolean",
  13395. "x-go-name": "EnableApprovalsWhitelist"
  13396. },
  13397. "enable_merge_whitelist": {
  13398. "type": "boolean",
  13399. "x-go-name": "EnableMergeWhitelist"
  13400. },
  13401. "enable_push": {
  13402. "type": "boolean",
  13403. "x-go-name": "EnablePush"
  13404. },
  13405. "enable_push_whitelist": {
  13406. "type": "boolean",
  13407. "x-go-name": "EnablePushWhitelist"
  13408. },
  13409. "enable_status_check": {
  13410. "type": "boolean",
  13411. "x-go-name": "EnableStatusCheck"
  13412. },
  13413. "merge_whitelist_teams": {
  13414. "type": "array",
  13415. "items": {
  13416. "type": "string"
  13417. },
  13418. "x-go-name": "MergeWhitelistTeams"
  13419. },
  13420. "merge_whitelist_usernames": {
  13421. "type": "array",
  13422. "items": {
  13423. "type": "string"
  13424. },
  13425. "x-go-name": "MergeWhitelistUsernames"
  13426. },
  13427. "protected_file_patterns": {
  13428. "type": "string",
  13429. "x-go-name": "ProtectedFilePatterns"
  13430. },
  13431. "push_whitelist_deploy_keys": {
  13432. "type": "boolean",
  13433. "x-go-name": "PushWhitelistDeployKeys"
  13434. },
  13435. "push_whitelist_teams": {
  13436. "type": "array",
  13437. "items": {
  13438. "type": "string"
  13439. },
  13440. "x-go-name": "PushWhitelistTeams"
  13441. },
  13442. "push_whitelist_usernames": {
  13443. "type": "array",
  13444. "items": {
  13445. "type": "string"
  13446. },
  13447. "x-go-name": "PushWhitelistUsernames"
  13448. },
  13449. "require_signed_commits": {
  13450. "type": "boolean",
  13451. "x-go-name": "RequireSignedCommits"
  13452. },
  13453. "required_approvals": {
  13454. "type": "integer",
  13455. "format": "int64",
  13456. "x-go-name": "RequiredApprovals"
  13457. },
  13458. "status_check_contexts": {
  13459. "type": "array",
  13460. "items": {
  13461. "type": "string"
  13462. },
  13463. "x-go-name": "StatusCheckContexts"
  13464. },
  13465. "unprotected_file_patterns": {
  13466. "type": "string",
  13467. "x-go-name": "UnprotectedFilePatterns"
  13468. },
  13469. "updated_at": {
  13470. "type": "string",
  13471. "format": "date-time",
  13472. "x-go-name": "Updated"
  13473. }
  13474. },
  13475. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13476. },
  13477. "CombinedStatus": {
  13478. "description": "CombinedStatus holds the combined state of several statuses for a single commit",
  13479. "type": "object",
  13480. "properties": {
  13481. "commit_url": {
  13482. "type": "string",
  13483. "x-go-name": "CommitURL"
  13484. },
  13485. "repository": {
  13486. "$ref": "#/definitions/Repository"
  13487. },
  13488. "sha": {
  13489. "type": "string",
  13490. "x-go-name": "SHA"
  13491. },
  13492. "state": {
  13493. "$ref": "#/definitions/CommitStatusState"
  13494. },
  13495. "statuses": {
  13496. "type": "array",
  13497. "items": {
  13498. "$ref": "#/definitions/CommitStatus"
  13499. },
  13500. "x-go-name": "Statuses"
  13501. },
  13502. "total_count": {
  13503. "type": "integer",
  13504. "format": "int64",
  13505. "x-go-name": "TotalCount"
  13506. },
  13507. "url": {
  13508. "type": "string",
  13509. "x-go-name": "URL"
  13510. }
  13511. },
  13512. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13513. },
  13514. "Comment": {
  13515. "description": "Comment represents a comment on a commit or issue",
  13516. "type": "object",
  13517. "properties": {
  13518. "body": {
  13519. "type": "string",
  13520. "x-go-name": "Body"
  13521. },
  13522. "created_at": {
  13523. "type": "string",
  13524. "format": "date-time",
  13525. "x-go-name": "Created"
  13526. },
  13527. "html_url": {
  13528. "type": "string",
  13529. "x-go-name": "HTMLURL"
  13530. },
  13531. "id": {
  13532. "type": "integer",
  13533. "format": "int64",
  13534. "x-go-name": "ID"
  13535. },
  13536. "issue_url": {
  13537. "type": "string",
  13538. "x-go-name": "IssueURL"
  13539. },
  13540. "original_author": {
  13541. "type": "string",
  13542. "x-go-name": "OriginalAuthor"
  13543. },
  13544. "original_author_id": {
  13545. "type": "integer",
  13546. "format": "int64",
  13547. "x-go-name": "OriginalAuthorID"
  13548. },
  13549. "pull_request_url": {
  13550. "type": "string",
  13551. "x-go-name": "PRURL"
  13552. },
  13553. "updated_at": {
  13554. "type": "string",
  13555. "format": "date-time",
  13556. "x-go-name": "Updated"
  13557. },
  13558. "user": {
  13559. "$ref": "#/definitions/User"
  13560. }
  13561. },
  13562. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13563. },
  13564. "Commit": {
  13565. "type": "object",
  13566. "title": "Commit contains information generated from a Git commit.",
  13567. "properties": {
  13568. "author": {
  13569. "$ref": "#/definitions/User"
  13570. },
  13571. "commit": {
  13572. "$ref": "#/definitions/RepoCommit"
  13573. },
  13574. "committer": {
  13575. "$ref": "#/definitions/User"
  13576. },
  13577. "created": {
  13578. "type": "string",
  13579. "format": "date-time",
  13580. "x-go-name": "Created"
  13581. },
  13582. "files": {
  13583. "type": "array",
  13584. "items": {
  13585. "$ref": "#/definitions/CommitAffectedFiles"
  13586. },
  13587. "x-go-name": "Files"
  13588. },
  13589. "html_url": {
  13590. "type": "string",
  13591. "x-go-name": "HTMLURL"
  13592. },
  13593. "parents": {
  13594. "type": "array",
  13595. "items": {
  13596. "$ref": "#/definitions/CommitMeta"
  13597. },
  13598. "x-go-name": "Parents"
  13599. },
  13600. "sha": {
  13601. "type": "string",
  13602. "x-go-name": "SHA"
  13603. },
  13604. "stats": {
  13605. "$ref": "#/definitions/CommitStats"
  13606. },
  13607. "url": {
  13608. "type": "string",
  13609. "x-go-name": "URL"
  13610. }
  13611. },
  13612. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13613. },
  13614. "CommitAffectedFiles": {
  13615. "description": "CommitAffectedFiles store information about files affected by the commit",
  13616. "type": "object",
  13617. "properties": {
  13618. "filename": {
  13619. "type": "string",
  13620. "x-go-name": "Filename"
  13621. }
  13622. },
  13623. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13624. },
  13625. "CommitDateOptions": {
  13626. "description": "CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE",
  13627. "type": "object",
  13628. "properties": {
  13629. "author": {
  13630. "type": "string",
  13631. "format": "date-time",
  13632. "x-go-name": "Author"
  13633. },
  13634. "committer": {
  13635. "type": "string",
  13636. "format": "date-time",
  13637. "x-go-name": "Committer"
  13638. }
  13639. },
  13640. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13641. },
  13642. "CommitMeta": {
  13643. "type": "object",
  13644. "title": "CommitMeta contains meta information of a commit in terms of API.",
  13645. "properties": {
  13646. "created": {
  13647. "type": "string",
  13648. "format": "date-time",
  13649. "x-go-name": "Created"
  13650. },
  13651. "sha": {
  13652. "type": "string",
  13653. "x-go-name": "SHA"
  13654. },
  13655. "url": {
  13656. "type": "string",
  13657. "x-go-name": "URL"
  13658. }
  13659. },
  13660. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13661. },
  13662. "CommitStats": {
  13663. "description": "CommitStats is statistics for a RepoCommit",
  13664. "type": "object",
  13665. "properties": {
  13666. "additions": {
  13667. "type": "integer",
  13668. "format": "int64",
  13669. "x-go-name": "Additions"
  13670. },
  13671. "deletions": {
  13672. "type": "integer",
  13673. "format": "int64",
  13674. "x-go-name": "Deletions"
  13675. },
  13676. "total": {
  13677. "type": "integer",
  13678. "format": "int64",
  13679. "x-go-name": "Total"
  13680. }
  13681. },
  13682. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13683. },
  13684. "CommitStatus": {
  13685. "description": "CommitStatus holds a single status of a single Commit",
  13686. "type": "object",
  13687. "properties": {
  13688. "context": {
  13689. "type": "string",
  13690. "x-go-name": "Context"
  13691. },
  13692. "created_at": {
  13693. "type": "string",
  13694. "format": "date-time",
  13695. "x-go-name": "Created"
  13696. },
  13697. "creator": {
  13698. "$ref": "#/definitions/User"
  13699. },
  13700. "description": {
  13701. "type": "string",
  13702. "x-go-name": "Description"
  13703. },
  13704. "id": {
  13705. "type": "integer",
  13706. "format": "int64",
  13707. "x-go-name": "ID"
  13708. },
  13709. "status": {
  13710. "$ref": "#/definitions/CommitStatusState"
  13711. },
  13712. "target_url": {
  13713. "type": "string",
  13714. "x-go-name": "TargetURL"
  13715. },
  13716. "updated_at": {
  13717. "type": "string",
  13718. "format": "date-time",
  13719. "x-go-name": "Updated"
  13720. },
  13721. "url": {
  13722. "type": "string",
  13723. "x-go-name": "URL"
  13724. }
  13725. },
  13726. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13727. },
  13728. "CommitStatusState": {
  13729. "description": "CommitStatusState holds the state of a CommitStatus\nIt can be \"pending\", \"success\", \"error\", \"failure\", and \"warning\"",
  13730. "type": "string",
  13731. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13732. },
  13733. "CommitUser": {
  13734. "type": "object",
  13735. "title": "CommitUser contains information of a user in the context of a commit.",
  13736. "properties": {
  13737. "date": {
  13738. "type": "string",
  13739. "x-go-name": "Date"
  13740. },
  13741. "email": {
  13742. "type": "string",
  13743. "format": "email",
  13744. "x-go-name": "Email"
  13745. },
  13746. "name": {
  13747. "type": "string",
  13748. "x-go-name": "Name"
  13749. }
  13750. },
  13751. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13752. },
  13753. "ContentsResponse": {
  13754. "description": "ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content",
  13755. "type": "object",
  13756. "properties": {
  13757. "_links": {
  13758. "$ref": "#/definitions/FileLinksResponse"
  13759. },
  13760. "content": {
  13761. "description": "`content` is populated when `type` is `file`, otherwise null",
  13762. "type": "string",
  13763. "x-go-name": "Content"
  13764. },
  13765. "download_url": {
  13766. "type": "string",
  13767. "x-go-name": "DownloadURL"
  13768. },
  13769. "encoding": {
  13770. "description": "`encoding` is populated when `type` is `file`, otherwise null",
  13771. "type": "string",
  13772. "x-go-name": "Encoding"
  13773. },
  13774. "git_url": {
  13775. "type": "string",
  13776. "x-go-name": "GitURL"
  13777. },
  13778. "html_url": {
  13779. "type": "string",
  13780. "x-go-name": "HTMLURL"
  13781. },
  13782. "name": {
  13783. "type": "string",
  13784. "x-go-name": "Name"
  13785. },
  13786. "path": {
  13787. "type": "string",
  13788. "x-go-name": "Path"
  13789. },
  13790. "sha": {
  13791. "type": "string",
  13792. "x-go-name": "SHA"
  13793. },
  13794. "size": {
  13795. "type": "integer",
  13796. "format": "int64",
  13797. "x-go-name": "Size"
  13798. },
  13799. "submodule_git_url": {
  13800. "description": "`submodule_git_url` is populated when `type` is `submodule`, otherwise null",
  13801. "type": "string",
  13802. "x-go-name": "SubmoduleGitURL"
  13803. },
  13804. "target": {
  13805. "description": "`target` is populated when `type` is `symlink`, otherwise null",
  13806. "type": "string",
  13807. "x-go-name": "Target"
  13808. },
  13809. "type": {
  13810. "description": "`type` will be `file`, `dir`, `symlink`, or `submodule`",
  13811. "type": "string",
  13812. "x-go-name": "Type"
  13813. },
  13814. "url": {
  13815. "type": "string",
  13816. "x-go-name": "URL"
  13817. }
  13818. },
  13819. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13820. },
  13821. "CreateAccessTokenOption": {
  13822. "description": "CreateAccessTokenOption options when create access token",
  13823. "type": "object",
  13824. "properties": {
  13825. "name": {
  13826. "type": "string",
  13827. "x-go-name": "Name"
  13828. }
  13829. },
  13830. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13831. },
  13832. "CreateBranchProtectionOption": {
  13833. "description": "CreateBranchProtectionOption options for creating a branch protection",
  13834. "type": "object",
  13835. "properties": {
  13836. "approvals_whitelist_teams": {
  13837. "type": "array",
  13838. "items": {
  13839. "type": "string"
  13840. },
  13841. "x-go-name": "ApprovalsWhitelistTeams"
  13842. },
  13843. "approvals_whitelist_username": {
  13844. "type": "array",
  13845. "items": {
  13846. "type": "string"
  13847. },
  13848. "x-go-name": "ApprovalsWhitelistUsernames"
  13849. },
  13850. "block_on_official_review_requests": {
  13851. "type": "boolean",
  13852. "x-go-name": "BlockOnOfficialReviewRequests"
  13853. },
  13854. "block_on_outdated_branch": {
  13855. "type": "boolean",
  13856. "x-go-name": "BlockOnOutdatedBranch"
  13857. },
  13858. "block_on_rejected_reviews": {
  13859. "type": "boolean",
  13860. "x-go-name": "BlockOnRejectedReviews"
  13861. },
  13862. "branch_name": {
  13863. "type": "string",
  13864. "x-go-name": "BranchName"
  13865. },
  13866. "dismiss_stale_approvals": {
  13867. "type": "boolean",
  13868. "x-go-name": "DismissStaleApprovals"
  13869. },
  13870. "enable_approvals_whitelist": {
  13871. "type": "boolean",
  13872. "x-go-name": "EnableApprovalsWhitelist"
  13873. },
  13874. "enable_merge_whitelist": {
  13875. "type": "boolean",
  13876. "x-go-name": "EnableMergeWhitelist"
  13877. },
  13878. "enable_push": {
  13879. "type": "boolean",
  13880. "x-go-name": "EnablePush"
  13881. },
  13882. "enable_push_whitelist": {
  13883. "type": "boolean",
  13884. "x-go-name": "EnablePushWhitelist"
  13885. },
  13886. "enable_status_check": {
  13887. "type": "boolean",
  13888. "x-go-name": "EnableStatusCheck"
  13889. },
  13890. "merge_whitelist_teams": {
  13891. "type": "array",
  13892. "items": {
  13893. "type": "string"
  13894. },
  13895. "x-go-name": "MergeWhitelistTeams"
  13896. },
  13897. "merge_whitelist_usernames": {
  13898. "type": "array",
  13899. "items": {
  13900. "type": "string"
  13901. },
  13902. "x-go-name": "MergeWhitelistUsernames"
  13903. },
  13904. "protected_file_patterns": {
  13905. "type": "string",
  13906. "x-go-name": "ProtectedFilePatterns"
  13907. },
  13908. "push_whitelist_deploy_keys": {
  13909. "type": "boolean",
  13910. "x-go-name": "PushWhitelistDeployKeys"
  13911. },
  13912. "push_whitelist_teams": {
  13913. "type": "array",
  13914. "items": {
  13915. "type": "string"
  13916. },
  13917. "x-go-name": "PushWhitelistTeams"
  13918. },
  13919. "push_whitelist_usernames": {
  13920. "type": "array",
  13921. "items": {
  13922. "type": "string"
  13923. },
  13924. "x-go-name": "PushWhitelistUsernames"
  13925. },
  13926. "require_signed_commits": {
  13927. "type": "boolean",
  13928. "x-go-name": "RequireSignedCommits"
  13929. },
  13930. "required_approvals": {
  13931. "type": "integer",
  13932. "format": "int64",
  13933. "x-go-name": "RequiredApprovals"
  13934. },
  13935. "status_check_contexts": {
  13936. "type": "array",
  13937. "items": {
  13938. "type": "string"
  13939. },
  13940. "x-go-name": "StatusCheckContexts"
  13941. },
  13942. "unprotected_file_patterns": {
  13943. "type": "string",
  13944. "x-go-name": "UnprotectedFilePatterns"
  13945. }
  13946. },
  13947. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13948. },
  13949. "CreateBranchRepoOption": {
  13950. "description": "CreateBranchRepoOption options when creating a branch in a repository",
  13951. "type": "object",
  13952. "required": [
  13953. "new_branch_name"
  13954. ],
  13955. "properties": {
  13956. "new_branch_name": {
  13957. "description": "Name of the branch to create",
  13958. "type": "string",
  13959. "uniqueItems": true,
  13960. "x-go-name": "BranchName"
  13961. },
  13962. "old_branch_name": {
  13963. "description": "Name of the old branch to create from",
  13964. "type": "string",
  13965. "uniqueItems": true,
  13966. "x-go-name": "OldBranchName"
  13967. }
  13968. },
  13969. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13970. },
  13971. "CreateEmailOption": {
  13972. "description": "CreateEmailOption options when creating email addresses",
  13973. "type": "object",
  13974. "properties": {
  13975. "emails": {
  13976. "description": "email addresses to add",
  13977. "type": "array",
  13978. "items": {
  13979. "type": "string"
  13980. },
  13981. "x-go-name": "Emails"
  13982. }
  13983. },
  13984. "x-go-package": "code.gitea.io/gitea/modules/structs"
  13985. },
  13986. "CreateFileOptions": {
  13987. "description": "CreateFileOptions options for creating files\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)",
  13988. "type": "object",
  13989. "required": [
  13990. "content"
  13991. ],
  13992. "properties": {
  13993. "author": {
  13994. "$ref": "#/definitions/Identity"
  13995. },
  13996. "branch": {
  13997. "description": "branch (optional) to base this file from. if not given, the default branch is used",
  13998. "type": "string",
  13999. "x-go-name": "BranchName"
  14000. },
  14001. "committer": {
  14002. "$ref": "#/definitions/Identity"
  14003. },
  14004. "content": {
  14005. "description": "content must be base64 encoded",
  14006. "type": "string",
  14007. "x-go-name": "Content"
  14008. },
  14009. "dates": {
  14010. "$ref": "#/definitions/CommitDateOptions"
  14011. },
  14012. "message": {
  14013. "description": "message (optional) for the commit of this file. if not supplied, a default message will be used",
  14014. "type": "string",
  14015. "x-go-name": "Message"
  14016. },
  14017. "new_branch": {
  14018. "description": "new_branch (optional) will make a new branch from `branch` before creating the file",
  14019. "type": "string",
  14020. "x-go-name": "NewBranchName"
  14021. },
  14022. "signoff": {
  14023. "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.",
  14024. "type": "boolean",
  14025. "x-go-name": "Signoff"
  14026. }
  14027. },
  14028. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14029. },
  14030. "CreateForkOption": {
  14031. "description": "CreateForkOption options for creating a fork",
  14032. "type": "object",
  14033. "properties": {
  14034. "name": {
  14035. "description": "name of the forked repository",
  14036. "type": "string",
  14037. "x-go-name": "Name"
  14038. },
  14039. "organization": {
  14040. "description": "organization name, if forking into an organization",
  14041. "type": "string",
  14042. "x-go-name": "Organization"
  14043. }
  14044. },
  14045. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14046. },
  14047. "CreateGPGKeyOption": {
  14048. "description": "CreateGPGKeyOption options create user GPG key",
  14049. "type": "object",
  14050. "required": [
  14051. "armored_public_key"
  14052. ],
  14053. "properties": {
  14054. "armored_public_key": {
  14055. "description": "An armored GPG key to add",
  14056. "type": "string",
  14057. "uniqueItems": true,
  14058. "x-go-name": "ArmoredKey"
  14059. },
  14060. "armored_signature": {
  14061. "type": "string",
  14062. "x-go-name": "Signature"
  14063. }
  14064. },
  14065. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14066. },
  14067. "CreateHookOption": {
  14068. "description": "CreateHookOption options when create a hook",
  14069. "type": "object",
  14070. "required": [
  14071. "type",
  14072. "config"
  14073. ],
  14074. "properties": {
  14075. "active": {
  14076. "type": "boolean",
  14077. "default": false,
  14078. "x-go-name": "Active"
  14079. },
  14080. "branch_filter": {
  14081. "type": "string",
  14082. "x-go-name": "BranchFilter"
  14083. },
  14084. "config": {
  14085. "$ref": "#/definitions/CreateHookOptionConfig"
  14086. },
  14087. "events": {
  14088. "type": "array",
  14089. "items": {
  14090. "type": "string"
  14091. },
  14092. "x-go-name": "Events"
  14093. },
  14094. "type": {
  14095. "type": "string",
  14096. "enum": [
  14097. "dingtalk",
  14098. "discord",
  14099. "gitea",
  14100. "gogs",
  14101. "msteams",
  14102. "slack",
  14103. "telegram",
  14104. "feishu",
  14105. "wechatwork",
  14106. "packagist"
  14107. ],
  14108. "x-go-name": "Type"
  14109. }
  14110. },
  14111. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14112. },
  14113. "CreateHookOptionConfig": {
  14114. "description": "CreateHookOptionConfig has all config options in it\nrequired are \"content_type\" and \"url\" Required",
  14115. "type": "object",
  14116. "additionalProperties": {
  14117. "type": "string"
  14118. },
  14119. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14120. },
  14121. "CreateIssueCommentOption": {
  14122. "description": "CreateIssueCommentOption options for creating a comment on an issue",
  14123. "type": "object",
  14124. "required": [
  14125. "body"
  14126. ],
  14127. "properties": {
  14128. "body": {
  14129. "type": "string",
  14130. "x-go-name": "Body"
  14131. }
  14132. },
  14133. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14134. },
  14135. "CreateIssueOption": {
  14136. "description": "CreateIssueOption options to create one issue",
  14137. "type": "object",
  14138. "required": [
  14139. "title"
  14140. ],
  14141. "properties": {
  14142. "assignee": {
  14143. "description": "deprecated",
  14144. "type": "string",
  14145. "x-go-name": "Assignee"
  14146. },
  14147. "assignees": {
  14148. "type": "array",
  14149. "items": {
  14150. "type": "string"
  14151. },
  14152. "x-go-name": "Assignees"
  14153. },
  14154. "body": {
  14155. "type": "string",
  14156. "x-go-name": "Body"
  14157. },
  14158. "closed": {
  14159. "type": "boolean",
  14160. "x-go-name": "Closed"
  14161. },
  14162. "due_date": {
  14163. "type": "string",
  14164. "format": "date-time",
  14165. "x-go-name": "Deadline"
  14166. },
  14167. "labels": {
  14168. "description": "list of label ids",
  14169. "type": "array",
  14170. "items": {
  14171. "type": "integer",
  14172. "format": "int64"
  14173. },
  14174. "x-go-name": "Labels"
  14175. },
  14176. "milestone": {
  14177. "description": "milestone id",
  14178. "type": "integer",
  14179. "format": "int64",
  14180. "x-go-name": "Milestone"
  14181. },
  14182. "ref": {
  14183. "type": "string",
  14184. "x-go-name": "Ref"
  14185. },
  14186. "title": {
  14187. "type": "string",
  14188. "x-go-name": "Title"
  14189. }
  14190. },
  14191. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14192. },
  14193. "CreateKeyOption": {
  14194. "description": "CreateKeyOption options when creating a key",
  14195. "type": "object",
  14196. "required": [
  14197. "title",
  14198. "key"
  14199. ],
  14200. "properties": {
  14201. "key": {
  14202. "description": "An armored SSH key to add",
  14203. "type": "string",
  14204. "uniqueItems": true,
  14205. "x-go-name": "Key"
  14206. },
  14207. "read_only": {
  14208. "description": "Describe if the key has only read access or read/write",
  14209. "type": "boolean",
  14210. "x-go-name": "ReadOnly"
  14211. },
  14212. "title": {
  14213. "description": "Title of the key to add",
  14214. "type": "string",
  14215. "uniqueItems": true,
  14216. "x-go-name": "Title"
  14217. }
  14218. },
  14219. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14220. },
  14221. "CreateLabelOption": {
  14222. "description": "CreateLabelOption options for creating a label",
  14223. "type": "object",
  14224. "required": [
  14225. "name",
  14226. "color"
  14227. ],
  14228. "properties": {
  14229. "color": {
  14230. "type": "string",
  14231. "x-go-name": "Color",
  14232. "example": "#00aabb"
  14233. },
  14234. "description": {
  14235. "type": "string",
  14236. "x-go-name": "Description"
  14237. },
  14238. "name": {
  14239. "type": "string",
  14240. "x-go-name": "Name"
  14241. }
  14242. },
  14243. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14244. },
  14245. "CreateMilestoneOption": {
  14246. "description": "CreateMilestoneOption options for creating a milestone",
  14247. "type": "object",
  14248. "properties": {
  14249. "description": {
  14250. "type": "string",
  14251. "x-go-name": "Description"
  14252. },
  14253. "due_on": {
  14254. "type": "string",
  14255. "format": "date-time",
  14256. "x-go-name": "Deadline"
  14257. },
  14258. "state": {
  14259. "type": "string",
  14260. "enum": [
  14261. "open",
  14262. "closed"
  14263. ],
  14264. "x-go-name": "State"
  14265. },
  14266. "title": {
  14267. "type": "string",
  14268. "x-go-name": "Title"
  14269. }
  14270. },
  14271. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14272. },
  14273. "CreateOAuth2ApplicationOptions": {
  14274. "description": "CreateOAuth2ApplicationOptions holds options to create an oauth2 application",
  14275. "type": "object",
  14276. "properties": {
  14277. "name": {
  14278. "type": "string",
  14279. "x-go-name": "Name"
  14280. },
  14281. "redirect_uris": {
  14282. "type": "array",
  14283. "items": {
  14284. "type": "string"
  14285. },
  14286. "x-go-name": "RedirectURIs"
  14287. }
  14288. },
  14289. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14290. },
  14291. "CreateOrgOption": {
  14292. "description": "CreateOrgOption options for creating an organization",
  14293. "type": "object",
  14294. "required": [
  14295. "username"
  14296. ],
  14297. "properties": {
  14298. "description": {
  14299. "type": "string",
  14300. "x-go-name": "Description"
  14301. },
  14302. "full_name": {
  14303. "type": "string",
  14304. "x-go-name": "FullName"
  14305. },
  14306. "location": {
  14307. "type": "string",
  14308. "x-go-name": "Location"
  14309. },
  14310. "repo_admin_change_team_access": {
  14311. "type": "boolean",
  14312. "x-go-name": "RepoAdminChangeTeamAccess"
  14313. },
  14314. "username": {
  14315. "type": "string",
  14316. "x-go-name": "UserName"
  14317. },
  14318. "visibility": {
  14319. "description": "possible values are `public` (default), `limited` or `private`",
  14320. "type": "string",
  14321. "enum": [
  14322. "public",
  14323. "limited",
  14324. "private"
  14325. ],
  14326. "x-go-name": "Visibility"
  14327. },
  14328. "website": {
  14329. "type": "string",
  14330. "x-go-name": "Website"
  14331. }
  14332. },
  14333. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14334. },
  14335. "CreatePullRequestOption": {
  14336. "description": "CreatePullRequestOption options when creating a pull request",
  14337. "type": "object",
  14338. "properties": {
  14339. "assignee": {
  14340. "type": "string",
  14341. "x-go-name": "Assignee"
  14342. },
  14343. "assignees": {
  14344. "type": "array",
  14345. "items": {
  14346. "type": "string"
  14347. },
  14348. "x-go-name": "Assignees"
  14349. },
  14350. "base": {
  14351. "type": "string",
  14352. "x-go-name": "Base"
  14353. },
  14354. "body": {
  14355. "type": "string",
  14356. "x-go-name": "Body"
  14357. },
  14358. "due_date": {
  14359. "type": "string",
  14360. "format": "date-time",
  14361. "x-go-name": "Deadline"
  14362. },
  14363. "head": {
  14364. "type": "string",
  14365. "x-go-name": "Head"
  14366. },
  14367. "labels": {
  14368. "type": "array",
  14369. "items": {
  14370. "type": "integer",
  14371. "format": "int64"
  14372. },
  14373. "x-go-name": "Labels"
  14374. },
  14375. "milestone": {
  14376. "type": "integer",
  14377. "format": "int64",
  14378. "x-go-name": "Milestone"
  14379. },
  14380. "title": {
  14381. "type": "string",
  14382. "x-go-name": "Title"
  14383. }
  14384. },
  14385. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14386. },
  14387. "CreatePullReviewComment": {
  14388. "description": "CreatePullReviewComment represent a review comment for creation api",
  14389. "type": "object",
  14390. "properties": {
  14391. "body": {
  14392. "type": "string",
  14393. "x-go-name": "Body"
  14394. },
  14395. "new_position": {
  14396. "description": "if comment to new file line or 0",
  14397. "type": "integer",
  14398. "format": "int64",
  14399. "x-go-name": "NewLineNum"
  14400. },
  14401. "old_position": {
  14402. "description": "if comment to old file line or 0",
  14403. "type": "integer",
  14404. "format": "int64",
  14405. "x-go-name": "OldLineNum"
  14406. },
  14407. "path": {
  14408. "description": "the tree path",
  14409. "type": "string",
  14410. "x-go-name": "Path"
  14411. }
  14412. },
  14413. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14414. },
  14415. "CreatePullReviewOptions": {
  14416. "description": "CreatePullReviewOptions are options to create a pull review",
  14417. "type": "object",
  14418. "properties": {
  14419. "body": {
  14420. "type": "string",
  14421. "x-go-name": "Body"
  14422. },
  14423. "comments": {
  14424. "type": "array",
  14425. "items": {
  14426. "$ref": "#/definitions/CreatePullReviewComment"
  14427. },
  14428. "x-go-name": "Comments"
  14429. },
  14430. "commit_id": {
  14431. "type": "string",
  14432. "x-go-name": "CommitID"
  14433. },
  14434. "event": {
  14435. "$ref": "#/definitions/ReviewStateType"
  14436. }
  14437. },
  14438. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14439. },
  14440. "CreateReleaseOption": {
  14441. "description": "CreateReleaseOption options when creating a release",
  14442. "type": "object",
  14443. "required": [
  14444. "tag_name"
  14445. ],
  14446. "properties": {
  14447. "body": {
  14448. "type": "string",
  14449. "x-go-name": "Note"
  14450. },
  14451. "draft": {
  14452. "type": "boolean",
  14453. "x-go-name": "IsDraft"
  14454. },
  14455. "name": {
  14456. "type": "string",
  14457. "x-go-name": "Title"
  14458. },
  14459. "prerelease": {
  14460. "type": "boolean",
  14461. "x-go-name": "IsPrerelease"
  14462. },
  14463. "tag_name": {
  14464. "type": "string",
  14465. "x-go-name": "TagName"
  14466. },
  14467. "target_commitish": {
  14468. "type": "string",
  14469. "x-go-name": "Target"
  14470. }
  14471. },
  14472. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14473. },
  14474. "CreateRepoOption": {
  14475. "description": "CreateRepoOption options when creating repository",
  14476. "type": "object",
  14477. "required": [
  14478. "name"
  14479. ],
  14480. "properties": {
  14481. "auto_init": {
  14482. "description": "Whether the repository should be auto-initialized?",
  14483. "type": "boolean",
  14484. "x-go-name": "AutoInit"
  14485. },
  14486. "default_branch": {
  14487. "description": "DefaultBranch of the repository (used when initializes and in template)",
  14488. "type": "string",
  14489. "x-go-name": "DefaultBranch"
  14490. },
  14491. "description": {
  14492. "description": "Description of the repository to create",
  14493. "type": "string",
  14494. "x-go-name": "Description"
  14495. },
  14496. "gitignores": {
  14497. "description": "Gitignores to use",
  14498. "type": "string",
  14499. "x-go-name": "Gitignores"
  14500. },
  14501. "issue_labels": {
  14502. "description": "Label-Set to use",
  14503. "type": "string",
  14504. "x-go-name": "IssueLabels"
  14505. },
  14506. "license": {
  14507. "description": "License to use",
  14508. "type": "string",
  14509. "x-go-name": "License"
  14510. },
  14511. "name": {
  14512. "description": "Name of the repository to create",
  14513. "type": "string",
  14514. "uniqueItems": true,
  14515. "x-go-name": "Name"
  14516. },
  14517. "private": {
  14518. "description": "Whether the repository is private",
  14519. "type": "boolean",
  14520. "x-go-name": "Private"
  14521. },
  14522. "readme": {
  14523. "description": "Readme of the repository to create",
  14524. "type": "string",
  14525. "x-go-name": "Readme"
  14526. },
  14527. "template": {
  14528. "description": "Whether the repository is template",
  14529. "type": "boolean",
  14530. "x-go-name": "Template"
  14531. },
  14532. "trust_model": {
  14533. "description": "TrustModel of the repository",
  14534. "type": "string",
  14535. "enum": [
  14536. "default",
  14537. "collaborator",
  14538. "committer",
  14539. "collaboratorcommitter"
  14540. ],
  14541. "x-go-name": "TrustModel"
  14542. }
  14543. },
  14544. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14545. },
  14546. "CreateStatusOption": {
  14547. "description": "CreateStatusOption holds the information needed to create a new CommitStatus for a Commit",
  14548. "type": "object",
  14549. "properties": {
  14550. "context": {
  14551. "type": "string",
  14552. "x-go-name": "Context"
  14553. },
  14554. "description": {
  14555. "type": "string",
  14556. "x-go-name": "Description"
  14557. },
  14558. "state": {
  14559. "$ref": "#/definitions/CommitStatusState"
  14560. },
  14561. "target_url": {
  14562. "type": "string",
  14563. "x-go-name": "TargetURL"
  14564. }
  14565. },
  14566. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14567. },
  14568. "CreateTagOption": {
  14569. "description": "CreateTagOption options when creating a tag",
  14570. "type": "object",
  14571. "required": [
  14572. "tag_name"
  14573. ],
  14574. "properties": {
  14575. "message": {
  14576. "type": "string",
  14577. "x-go-name": "Message"
  14578. },
  14579. "tag_name": {
  14580. "type": "string",
  14581. "x-go-name": "TagName"
  14582. },
  14583. "target": {
  14584. "type": "string",
  14585. "x-go-name": "Target"
  14586. }
  14587. },
  14588. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14589. },
  14590. "CreateTeamOption": {
  14591. "description": "CreateTeamOption options for creating a team",
  14592. "type": "object",
  14593. "required": [
  14594. "name"
  14595. ],
  14596. "properties": {
  14597. "can_create_org_repo": {
  14598. "type": "boolean",
  14599. "x-go-name": "CanCreateOrgRepo"
  14600. },
  14601. "description": {
  14602. "type": "string",
  14603. "x-go-name": "Description"
  14604. },
  14605. "includes_all_repositories": {
  14606. "type": "boolean",
  14607. "x-go-name": "IncludesAllRepositories"
  14608. },
  14609. "name": {
  14610. "type": "string",
  14611. "x-go-name": "Name"
  14612. },
  14613. "permission": {
  14614. "type": "string",
  14615. "enum": [
  14616. "read",
  14617. "write",
  14618. "admin"
  14619. ],
  14620. "x-go-name": "Permission"
  14621. },
  14622. "units": {
  14623. "type": "array",
  14624. "items": {
  14625. "type": "string"
  14626. },
  14627. "x-go-name": "Units",
  14628. "example": [
  14629. "repo.code",
  14630. "repo.issues",
  14631. "repo.ext_issues",
  14632. "repo.wiki",
  14633. "repo.pulls",
  14634. "repo.releases",
  14635. "repo.projects",
  14636. "repo.ext_wiki"
  14637. ]
  14638. },
  14639. "units_map": {
  14640. "type": "object",
  14641. "additionalProperties": {
  14642. "type": "string"
  14643. },
  14644. "x-go-name": "UnitsMap",
  14645. "example": "{\"repo.code\":\"read\",\"repo.issues\":\"write\",\"repo.ext_issues\":\"none\",\"repo.wiki\":\"admin\",\"repo.pulls\":\"owner\",\"repo.releases\":\"none\",\"repo.projects\":\"none\",\"repo.ext_wiki\":\"none\"]"
  14646. }
  14647. },
  14648. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14649. },
  14650. "CreateUserOption": {
  14651. "description": "CreateUserOption create user options",
  14652. "type": "object",
  14653. "required": [
  14654. "username",
  14655. "email",
  14656. "password"
  14657. ],
  14658. "properties": {
  14659. "email": {
  14660. "type": "string",
  14661. "format": "email",
  14662. "x-go-name": "Email"
  14663. },
  14664. "full_name": {
  14665. "type": "string",
  14666. "x-go-name": "FullName"
  14667. },
  14668. "login_name": {
  14669. "type": "string",
  14670. "x-go-name": "LoginName"
  14671. },
  14672. "must_change_password": {
  14673. "type": "boolean",
  14674. "x-go-name": "MustChangePassword"
  14675. },
  14676. "password": {
  14677. "type": "string",
  14678. "x-go-name": "Password"
  14679. },
  14680. "restricted": {
  14681. "type": "boolean",
  14682. "x-go-name": "Restricted"
  14683. },
  14684. "send_notify": {
  14685. "type": "boolean",
  14686. "x-go-name": "SendNotify"
  14687. },
  14688. "source_id": {
  14689. "type": "integer",
  14690. "format": "int64",
  14691. "x-go-name": "SourceID"
  14692. },
  14693. "username": {
  14694. "type": "string",
  14695. "x-go-name": "Username"
  14696. },
  14697. "visibility": {
  14698. "type": "string",
  14699. "x-go-name": "Visibility"
  14700. }
  14701. },
  14702. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14703. },
  14704. "CreateWikiPageOptions": {
  14705. "description": "CreateWikiPageOptions form for creating wiki",
  14706. "type": "object",
  14707. "properties": {
  14708. "content_base64": {
  14709. "description": "content must be base64 encoded",
  14710. "type": "string",
  14711. "x-go-name": "ContentBase64"
  14712. },
  14713. "message": {
  14714. "description": "optional commit message summarizing the change",
  14715. "type": "string",
  14716. "x-go-name": "Message"
  14717. },
  14718. "title": {
  14719. "description": "page title. leave empty to keep unchanged",
  14720. "type": "string",
  14721. "x-go-name": "Title"
  14722. }
  14723. },
  14724. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14725. },
  14726. "Cron": {
  14727. "description": "Cron represents a Cron task",
  14728. "type": "object",
  14729. "properties": {
  14730. "exec_times": {
  14731. "type": "integer",
  14732. "format": "int64",
  14733. "x-go-name": "ExecTimes"
  14734. },
  14735. "name": {
  14736. "type": "string",
  14737. "x-go-name": "Name"
  14738. },
  14739. "next": {
  14740. "type": "string",
  14741. "format": "date-time",
  14742. "x-go-name": "Next"
  14743. },
  14744. "prev": {
  14745. "type": "string",
  14746. "format": "date-time",
  14747. "x-go-name": "Prev"
  14748. },
  14749. "schedule": {
  14750. "type": "string",
  14751. "x-go-name": "Schedule"
  14752. }
  14753. },
  14754. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14755. },
  14756. "DeleteEmailOption": {
  14757. "description": "DeleteEmailOption options when deleting email addresses",
  14758. "type": "object",
  14759. "properties": {
  14760. "emails": {
  14761. "description": "email addresses to delete",
  14762. "type": "array",
  14763. "items": {
  14764. "type": "string"
  14765. },
  14766. "x-go-name": "Emails"
  14767. }
  14768. },
  14769. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14770. },
  14771. "DeleteFileOptions": {
  14772. "description": "DeleteFileOptions options for deleting files (used for other File structs below)\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)",
  14773. "type": "object",
  14774. "required": [
  14775. "sha"
  14776. ],
  14777. "properties": {
  14778. "author": {
  14779. "$ref": "#/definitions/Identity"
  14780. },
  14781. "branch": {
  14782. "description": "branch (optional) to base this file from. if not given, the default branch is used",
  14783. "type": "string",
  14784. "x-go-name": "BranchName"
  14785. },
  14786. "committer": {
  14787. "$ref": "#/definitions/Identity"
  14788. },
  14789. "dates": {
  14790. "$ref": "#/definitions/CommitDateOptions"
  14791. },
  14792. "message": {
  14793. "description": "message (optional) for the commit of this file. if not supplied, a default message will be used",
  14794. "type": "string",
  14795. "x-go-name": "Message"
  14796. },
  14797. "new_branch": {
  14798. "description": "new_branch (optional) will make a new branch from `branch` before creating the file",
  14799. "type": "string",
  14800. "x-go-name": "NewBranchName"
  14801. },
  14802. "sha": {
  14803. "description": "sha is the SHA for the file that already exists",
  14804. "type": "string",
  14805. "x-go-name": "SHA"
  14806. },
  14807. "signoff": {
  14808. "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.",
  14809. "type": "boolean",
  14810. "x-go-name": "Signoff"
  14811. }
  14812. },
  14813. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14814. },
  14815. "DeployKey": {
  14816. "description": "DeployKey a deploy key",
  14817. "type": "object",
  14818. "properties": {
  14819. "created_at": {
  14820. "type": "string",
  14821. "format": "date-time",
  14822. "x-go-name": "Created"
  14823. },
  14824. "fingerprint": {
  14825. "type": "string",
  14826. "x-go-name": "Fingerprint"
  14827. },
  14828. "id": {
  14829. "type": "integer",
  14830. "format": "int64",
  14831. "x-go-name": "ID"
  14832. },
  14833. "key": {
  14834. "type": "string",
  14835. "x-go-name": "Key"
  14836. },
  14837. "key_id": {
  14838. "type": "integer",
  14839. "format": "int64",
  14840. "x-go-name": "KeyID"
  14841. },
  14842. "read_only": {
  14843. "type": "boolean",
  14844. "x-go-name": "ReadOnly"
  14845. },
  14846. "repository": {
  14847. "$ref": "#/definitions/Repository"
  14848. },
  14849. "title": {
  14850. "type": "string",
  14851. "x-go-name": "Title"
  14852. },
  14853. "url": {
  14854. "type": "string",
  14855. "x-go-name": "URL"
  14856. }
  14857. },
  14858. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14859. },
  14860. "DismissPullReviewOptions": {
  14861. "description": "DismissPullReviewOptions are options to dismiss a pull review",
  14862. "type": "object",
  14863. "properties": {
  14864. "message": {
  14865. "type": "string",
  14866. "x-go-name": "Message"
  14867. }
  14868. },
  14869. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14870. },
  14871. "EditAttachmentOptions": {
  14872. "description": "EditAttachmentOptions options for editing attachments",
  14873. "type": "object",
  14874. "properties": {
  14875. "name": {
  14876. "type": "string",
  14877. "x-go-name": "Name"
  14878. }
  14879. },
  14880. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14881. },
  14882. "EditBranchProtectionOption": {
  14883. "description": "EditBranchProtectionOption options for editing a branch protection",
  14884. "type": "object",
  14885. "properties": {
  14886. "approvals_whitelist_teams": {
  14887. "type": "array",
  14888. "items": {
  14889. "type": "string"
  14890. },
  14891. "x-go-name": "ApprovalsWhitelistTeams"
  14892. },
  14893. "approvals_whitelist_username": {
  14894. "type": "array",
  14895. "items": {
  14896. "type": "string"
  14897. },
  14898. "x-go-name": "ApprovalsWhitelistUsernames"
  14899. },
  14900. "block_on_official_review_requests": {
  14901. "type": "boolean",
  14902. "x-go-name": "BlockOnOfficialReviewRequests"
  14903. },
  14904. "block_on_outdated_branch": {
  14905. "type": "boolean",
  14906. "x-go-name": "BlockOnOutdatedBranch"
  14907. },
  14908. "block_on_rejected_reviews": {
  14909. "type": "boolean",
  14910. "x-go-name": "BlockOnRejectedReviews"
  14911. },
  14912. "dismiss_stale_approvals": {
  14913. "type": "boolean",
  14914. "x-go-name": "DismissStaleApprovals"
  14915. },
  14916. "enable_approvals_whitelist": {
  14917. "type": "boolean",
  14918. "x-go-name": "EnableApprovalsWhitelist"
  14919. },
  14920. "enable_merge_whitelist": {
  14921. "type": "boolean",
  14922. "x-go-name": "EnableMergeWhitelist"
  14923. },
  14924. "enable_push": {
  14925. "type": "boolean",
  14926. "x-go-name": "EnablePush"
  14927. },
  14928. "enable_push_whitelist": {
  14929. "type": "boolean",
  14930. "x-go-name": "EnablePushWhitelist"
  14931. },
  14932. "enable_status_check": {
  14933. "type": "boolean",
  14934. "x-go-name": "EnableStatusCheck"
  14935. },
  14936. "merge_whitelist_teams": {
  14937. "type": "array",
  14938. "items": {
  14939. "type": "string"
  14940. },
  14941. "x-go-name": "MergeWhitelistTeams"
  14942. },
  14943. "merge_whitelist_usernames": {
  14944. "type": "array",
  14945. "items": {
  14946. "type": "string"
  14947. },
  14948. "x-go-name": "MergeWhitelistUsernames"
  14949. },
  14950. "protected_file_patterns": {
  14951. "type": "string",
  14952. "x-go-name": "ProtectedFilePatterns"
  14953. },
  14954. "push_whitelist_deploy_keys": {
  14955. "type": "boolean",
  14956. "x-go-name": "PushWhitelistDeployKeys"
  14957. },
  14958. "push_whitelist_teams": {
  14959. "type": "array",
  14960. "items": {
  14961. "type": "string"
  14962. },
  14963. "x-go-name": "PushWhitelistTeams"
  14964. },
  14965. "push_whitelist_usernames": {
  14966. "type": "array",
  14967. "items": {
  14968. "type": "string"
  14969. },
  14970. "x-go-name": "PushWhitelistUsernames"
  14971. },
  14972. "require_signed_commits": {
  14973. "type": "boolean",
  14974. "x-go-name": "RequireSignedCommits"
  14975. },
  14976. "required_approvals": {
  14977. "type": "integer",
  14978. "format": "int64",
  14979. "x-go-name": "RequiredApprovals"
  14980. },
  14981. "status_check_contexts": {
  14982. "type": "array",
  14983. "items": {
  14984. "type": "string"
  14985. },
  14986. "x-go-name": "StatusCheckContexts"
  14987. },
  14988. "unprotected_file_patterns": {
  14989. "type": "string",
  14990. "x-go-name": "UnprotectedFilePatterns"
  14991. }
  14992. },
  14993. "x-go-package": "code.gitea.io/gitea/modules/structs"
  14994. },
  14995. "EditDeadlineOption": {
  14996. "description": "EditDeadlineOption options for creating a deadline",
  14997. "type": "object",
  14998. "required": [
  14999. "due_date"
  15000. ],
  15001. "properties": {
  15002. "due_date": {
  15003. "type": "string",
  15004. "format": "date-time",
  15005. "x-go-name": "Deadline"
  15006. }
  15007. },
  15008. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15009. },
  15010. "EditGitHookOption": {
  15011. "description": "EditGitHookOption options when modifying one Git hook",
  15012. "type": "object",
  15013. "properties": {
  15014. "content": {
  15015. "type": "string",
  15016. "x-go-name": "Content"
  15017. }
  15018. },
  15019. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15020. },
  15021. "EditHookOption": {
  15022. "description": "EditHookOption options when modify one hook",
  15023. "type": "object",
  15024. "properties": {
  15025. "active": {
  15026. "type": "boolean",
  15027. "x-go-name": "Active"
  15028. },
  15029. "branch_filter": {
  15030. "type": "string",
  15031. "x-go-name": "BranchFilter"
  15032. },
  15033. "config": {
  15034. "type": "object",
  15035. "additionalProperties": {
  15036. "type": "string"
  15037. },
  15038. "x-go-name": "Config"
  15039. },
  15040. "events": {
  15041. "type": "array",
  15042. "items": {
  15043. "type": "string"
  15044. },
  15045. "x-go-name": "Events"
  15046. }
  15047. },
  15048. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15049. },
  15050. "EditIssueCommentOption": {
  15051. "description": "EditIssueCommentOption options for editing a comment",
  15052. "type": "object",
  15053. "required": [
  15054. "body"
  15055. ],
  15056. "properties": {
  15057. "body": {
  15058. "type": "string",
  15059. "x-go-name": "Body"
  15060. }
  15061. },
  15062. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15063. },
  15064. "EditIssueOption": {
  15065. "description": "EditIssueOption options for editing an issue",
  15066. "type": "object",
  15067. "properties": {
  15068. "assignee": {
  15069. "description": "deprecated",
  15070. "type": "string",
  15071. "x-go-name": "Assignee"
  15072. },
  15073. "assignees": {
  15074. "type": "array",
  15075. "items": {
  15076. "type": "string"
  15077. },
  15078. "x-go-name": "Assignees"
  15079. },
  15080. "body": {
  15081. "type": "string",
  15082. "x-go-name": "Body"
  15083. },
  15084. "due_date": {
  15085. "type": "string",
  15086. "format": "date-time",
  15087. "x-go-name": "Deadline"
  15088. },
  15089. "milestone": {
  15090. "type": "integer",
  15091. "format": "int64",
  15092. "x-go-name": "Milestone"
  15093. },
  15094. "ref": {
  15095. "type": "string",
  15096. "x-go-name": "Ref"
  15097. },
  15098. "state": {
  15099. "type": "string",
  15100. "x-go-name": "State"
  15101. },
  15102. "title": {
  15103. "type": "string",
  15104. "x-go-name": "Title"
  15105. },
  15106. "unset_due_date": {
  15107. "type": "boolean",
  15108. "x-go-name": "RemoveDeadline"
  15109. }
  15110. },
  15111. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15112. },
  15113. "EditLabelOption": {
  15114. "description": "EditLabelOption options for editing a label",
  15115. "type": "object",
  15116. "properties": {
  15117. "color": {
  15118. "type": "string",
  15119. "x-go-name": "Color"
  15120. },
  15121. "description": {
  15122. "type": "string",
  15123. "x-go-name": "Description"
  15124. },
  15125. "name": {
  15126. "type": "string",
  15127. "x-go-name": "Name"
  15128. }
  15129. },
  15130. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15131. },
  15132. "EditMilestoneOption": {
  15133. "description": "EditMilestoneOption options for editing a milestone",
  15134. "type": "object",
  15135. "properties": {
  15136. "description": {
  15137. "type": "string",
  15138. "x-go-name": "Description"
  15139. },
  15140. "due_on": {
  15141. "type": "string",
  15142. "format": "date-time",
  15143. "x-go-name": "Deadline"
  15144. },
  15145. "state": {
  15146. "type": "string",
  15147. "x-go-name": "State"
  15148. },
  15149. "title": {
  15150. "type": "string",
  15151. "x-go-name": "Title"
  15152. }
  15153. },
  15154. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15155. },
  15156. "EditOrgOption": {
  15157. "description": "EditOrgOption options for editing an organization",
  15158. "type": "object",
  15159. "properties": {
  15160. "description": {
  15161. "type": "string",
  15162. "x-go-name": "Description"
  15163. },
  15164. "full_name": {
  15165. "type": "string",
  15166. "x-go-name": "FullName"
  15167. },
  15168. "location": {
  15169. "type": "string",
  15170. "x-go-name": "Location"
  15171. },
  15172. "repo_admin_change_team_access": {
  15173. "type": "boolean",
  15174. "x-go-name": "RepoAdminChangeTeamAccess"
  15175. },
  15176. "visibility": {
  15177. "description": "possible values are `public`, `limited` or `private`",
  15178. "type": "string",
  15179. "enum": [
  15180. "public",
  15181. "limited",
  15182. "private"
  15183. ],
  15184. "x-go-name": "Visibility"
  15185. },
  15186. "website": {
  15187. "type": "string",
  15188. "x-go-name": "Website"
  15189. }
  15190. },
  15191. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15192. },
  15193. "EditPullRequestOption": {
  15194. "description": "EditPullRequestOption options when modify pull request",
  15195. "type": "object",
  15196. "properties": {
  15197. "allow_maintainer_edit": {
  15198. "type": "boolean",
  15199. "x-go-name": "AllowMaintainerEdit"
  15200. },
  15201. "assignee": {
  15202. "type": "string",
  15203. "x-go-name": "Assignee"
  15204. },
  15205. "assignees": {
  15206. "type": "array",
  15207. "items": {
  15208. "type": "string"
  15209. },
  15210. "x-go-name": "Assignees"
  15211. },
  15212. "base": {
  15213. "type": "string",
  15214. "x-go-name": "Base"
  15215. },
  15216. "body": {
  15217. "type": "string",
  15218. "x-go-name": "Body"
  15219. },
  15220. "due_date": {
  15221. "type": "string",
  15222. "format": "date-time",
  15223. "x-go-name": "Deadline"
  15224. },
  15225. "labels": {
  15226. "type": "array",
  15227. "items": {
  15228. "type": "integer",
  15229. "format": "int64"
  15230. },
  15231. "x-go-name": "Labels"
  15232. },
  15233. "milestone": {
  15234. "type": "integer",
  15235. "format": "int64",
  15236. "x-go-name": "Milestone"
  15237. },
  15238. "state": {
  15239. "type": "string",
  15240. "x-go-name": "State"
  15241. },
  15242. "title": {
  15243. "type": "string",
  15244. "x-go-name": "Title"
  15245. },
  15246. "unset_due_date": {
  15247. "type": "boolean",
  15248. "x-go-name": "RemoveDeadline"
  15249. }
  15250. },
  15251. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15252. },
  15253. "EditReactionOption": {
  15254. "description": "EditReactionOption contain the reaction type",
  15255. "type": "object",
  15256. "properties": {
  15257. "content": {
  15258. "type": "string",
  15259. "x-go-name": "Reaction"
  15260. }
  15261. },
  15262. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15263. },
  15264. "EditReleaseOption": {
  15265. "description": "EditReleaseOption options when editing a release",
  15266. "type": "object",
  15267. "properties": {
  15268. "body": {
  15269. "type": "string",
  15270. "x-go-name": "Note"
  15271. },
  15272. "draft": {
  15273. "type": "boolean",
  15274. "x-go-name": "IsDraft"
  15275. },
  15276. "name": {
  15277. "type": "string",
  15278. "x-go-name": "Title"
  15279. },
  15280. "prerelease": {
  15281. "type": "boolean",
  15282. "x-go-name": "IsPrerelease"
  15283. },
  15284. "tag_name": {
  15285. "type": "string",
  15286. "x-go-name": "TagName"
  15287. },
  15288. "target_commitish": {
  15289. "type": "string",
  15290. "x-go-name": "Target"
  15291. }
  15292. },
  15293. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15294. },
  15295. "EditRepoOption": {
  15296. "description": "EditRepoOption options when editing a repository's properties",
  15297. "type": "object",
  15298. "properties": {
  15299. "allow_manual_merge": {
  15300. "description": "either `true` to allow mark pr as merged manually, or `false` to prevent it. `has_pull_requests` must be `true`.",
  15301. "type": "boolean",
  15302. "x-go-name": "AllowManualMerge"
  15303. },
  15304. "allow_merge_commits": {
  15305. "description": "either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. `has_pull_requests` must be `true`.",
  15306. "type": "boolean",
  15307. "x-go-name": "AllowMerge"
  15308. },
  15309. "allow_rebase": {
  15310. "description": "either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. `has_pull_requests` must be `true`.",
  15311. "type": "boolean",
  15312. "x-go-name": "AllowRebase"
  15313. },
  15314. "allow_rebase_explicit": {
  15315. "description": "either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits. `has_pull_requests` must be `true`.",
  15316. "type": "boolean",
  15317. "x-go-name": "AllowRebaseMerge"
  15318. },
  15319. "allow_rebase_update": {
  15320. "description": "either `true` to allow updating pull request branch by rebase, or `false` to prevent it. `has_pull_requests` must be `true`.",
  15321. "type": "boolean",
  15322. "x-go-name": "AllowRebaseUpdate"
  15323. },
  15324. "allow_squash_merge": {
  15325. "description": "either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. `has_pull_requests` must be `true`.",
  15326. "type": "boolean",
  15327. "x-go-name": "AllowSquash"
  15328. },
  15329. "archived": {
  15330. "description": "set to `true` to archive this repository.",
  15331. "type": "boolean",
  15332. "x-go-name": "Archived"
  15333. },
  15334. "autodetect_manual_merge": {
  15335. "description": "either `true` to enable AutodetectManualMerge, or `false` to prevent it. `has_pull_requests` must be `true`, Note: In some special cases, misjudgments can occur.",
  15336. "type": "boolean",
  15337. "x-go-name": "AutodetectManualMerge"
  15338. },
  15339. "default_branch": {
  15340. "description": "sets the default branch for this repository.",
  15341. "type": "string",
  15342. "x-go-name": "DefaultBranch"
  15343. },
  15344. "default_delete_branch_after_merge": {
  15345. "description": "set to `true` to delete pr branch after merge by default",
  15346. "type": "boolean",
  15347. "x-go-name": "DefaultDeleteBranchAfterMerge"
  15348. },
  15349. "default_merge_style": {
  15350. "description": "set to a merge style to be used by this repository: \"merge\", \"rebase\", \"rebase-merge\", or \"squash\". `has_pull_requests` must be `true`.",
  15351. "type": "string",
  15352. "x-go-name": "DefaultMergeStyle"
  15353. },
  15354. "description": {
  15355. "description": "a short description of the repository.",
  15356. "type": "string",
  15357. "x-go-name": "Description"
  15358. },
  15359. "enable_prune": {
  15360. "description": "enable prune - remove obsolete remote-tracking references",
  15361. "type": "boolean",
  15362. "x-go-name": "EnablePrune"
  15363. },
  15364. "external_tracker": {
  15365. "$ref": "#/definitions/ExternalTracker"
  15366. },
  15367. "external_wiki": {
  15368. "$ref": "#/definitions/ExternalWiki"
  15369. },
  15370. "has_issues": {
  15371. "description": "either `true` to enable issues for this repository or `false` to disable them.",
  15372. "type": "boolean",
  15373. "x-go-name": "HasIssues"
  15374. },
  15375. "has_projects": {
  15376. "description": "either `true` to enable project unit, or `false` to disable them.",
  15377. "type": "boolean",
  15378. "x-go-name": "HasProjects"
  15379. },
  15380. "has_pull_requests": {
  15381. "description": "either `true` to allow pull requests, or `false` to prevent pull request.",
  15382. "type": "boolean",
  15383. "x-go-name": "HasPullRequests"
  15384. },
  15385. "has_wiki": {
  15386. "description": "either `true` to enable the wiki for this repository or `false` to disable it.",
  15387. "type": "boolean",
  15388. "x-go-name": "HasWiki"
  15389. },
  15390. "ignore_whitespace_conflicts": {
  15391. "description": "either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace. `has_pull_requests` must be `true`.",
  15392. "type": "boolean",
  15393. "x-go-name": "IgnoreWhitespaceConflicts"
  15394. },
  15395. "internal_tracker": {
  15396. "$ref": "#/definitions/InternalTracker"
  15397. },
  15398. "mirror_interval": {
  15399. "description": "set to a string like `8h30m0s` to set the mirror interval time",
  15400. "type": "string",
  15401. "x-go-name": "MirrorInterval"
  15402. },
  15403. "name": {
  15404. "description": "name of the repository",
  15405. "type": "string",
  15406. "uniqueItems": true,
  15407. "x-go-name": "Name"
  15408. },
  15409. "private": {
  15410. "description": "either `true` to make the repository private or `false` to make it public.\nNote: you will get a 422 error if the organization restricts changing repository visibility to organization\nowners and a non-owner tries to change the value of private.",
  15411. "type": "boolean",
  15412. "x-go-name": "Private"
  15413. },
  15414. "template": {
  15415. "description": "either `true` to make this repository a template or `false` to make it a normal repository",
  15416. "type": "boolean",
  15417. "x-go-name": "Template"
  15418. },
  15419. "website": {
  15420. "description": "a URL with more information about the repository.",
  15421. "type": "string",
  15422. "x-go-name": "Website"
  15423. }
  15424. },
  15425. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15426. },
  15427. "EditTeamOption": {
  15428. "description": "EditTeamOption options for editing a team",
  15429. "type": "object",
  15430. "required": [
  15431. "name"
  15432. ],
  15433. "properties": {
  15434. "can_create_org_repo": {
  15435. "type": "boolean",
  15436. "x-go-name": "CanCreateOrgRepo"
  15437. },
  15438. "description": {
  15439. "type": "string",
  15440. "x-go-name": "Description"
  15441. },
  15442. "includes_all_repositories": {
  15443. "type": "boolean",
  15444. "x-go-name": "IncludesAllRepositories"
  15445. },
  15446. "name": {
  15447. "type": "string",
  15448. "x-go-name": "Name"
  15449. },
  15450. "permission": {
  15451. "type": "string",
  15452. "enum": [
  15453. "read",
  15454. "write",
  15455. "admin"
  15456. ],
  15457. "x-go-name": "Permission"
  15458. },
  15459. "units": {
  15460. "type": "array",
  15461. "items": {
  15462. "type": "string"
  15463. },
  15464. "x-go-name": "Units",
  15465. "example": [
  15466. "repo.code",
  15467. "repo.issues",
  15468. "repo.ext_issues",
  15469. "repo.wiki",
  15470. "repo.pulls",
  15471. "repo.releases",
  15472. "repo.projects",
  15473. "repo.ext_wiki"
  15474. ]
  15475. },
  15476. "units_map": {
  15477. "type": "object",
  15478. "additionalProperties": {
  15479. "type": "string"
  15480. },
  15481. "x-go-name": "UnitsMap",
  15482. "example": "{\"repo.code\":\"read\",\"repo.issues\":\"write\",\"repo.ext_issues\":\"none\",\"repo.wiki\":\"admin\",\"repo.pulls\":\"owner\",\"repo.releases\":\"none\",\"repo.projects\":\"none\",\"repo.ext_wiki\":\"none\"]"
  15483. }
  15484. },
  15485. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15486. },
  15487. "EditUserOption": {
  15488. "description": "EditUserOption edit user options",
  15489. "type": "object",
  15490. "required": [
  15491. "source_id",
  15492. "login_name"
  15493. ],
  15494. "properties": {
  15495. "active": {
  15496. "type": "boolean",
  15497. "x-go-name": "Active"
  15498. },
  15499. "admin": {
  15500. "type": "boolean",
  15501. "x-go-name": "Admin"
  15502. },
  15503. "allow_create_organization": {
  15504. "type": "boolean",
  15505. "x-go-name": "AllowCreateOrganization"
  15506. },
  15507. "allow_git_hook": {
  15508. "type": "boolean",
  15509. "x-go-name": "AllowGitHook"
  15510. },
  15511. "allow_import_local": {
  15512. "type": "boolean",
  15513. "x-go-name": "AllowImportLocal"
  15514. },
  15515. "description": {
  15516. "type": "string",
  15517. "x-go-name": "Description"
  15518. },
  15519. "email": {
  15520. "type": "string",
  15521. "format": "email",
  15522. "x-go-name": "Email"
  15523. },
  15524. "full_name": {
  15525. "type": "string",
  15526. "x-go-name": "FullName"
  15527. },
  15528. "location": {
  15529. "type": "string",
  15530. "x-go-name": "Location"
  15531. },
  15532. "login_name": {
  15533. "type": "string",
  15534. "x-go-name": "LoginName"
  15535. },
  15536. "max_repo_creation": {
  15537. "type": "integer",
  15538. "format": "int64",
  15539. "x-go-name": "MaxRepoCreation"
  15540. },
  15541. "must_change_password": {
  15542. "type": "boolean",
  15543. "x-go-name": "MustChangePassword"
  15544. },
  15545. "password": {
  15546. "type": "string",
  15547. "x-go-name": "Password"
  15548. },
  15549. "prohibit_login": {
  15550. "type": "boolean",
  15551. "x-go-name": "ProhibitLogin"
  15552. },
  15553. "restricted": {
  15554. "type": "boolean",
  15555. "x-go-name": "Restricted"
  15556. },
  15557. "source_id": {
  15558. "type": "integer",
  15559. "format": "int64",
  15560. "x-go-name": "SourceID"
  15561. },
  15562. "visibility": {
  15563. "type": "string",
  15564. "x-go-name": "Visibility"
  15565. },
  15566. "website": {
  15567. "type": "string",
  15568. "x-go-name": "Website"
  15569. }
  15570. },
  15571. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15572. },
  15573. "Email": {
  15574. "description": "Email an email address belonging to a user",
  15575. "type": "object",
  15576. "properties": {
  15577. "email": {
  15578. "type": "string",
  15579. "format": "email",
  15580. "x-go-name": "Email"
  15581. },
  15582. "primary": {
  15583. "type": "boolean",
  15584. "x-go-name": "Primary"
  15585. },
  15586. "verified": {
  15587. "type": "boolean",
  15588. "x-go-name": "Verified"
  15589. }
  15590. },
  15591. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15592. },
  15593. "ExternalTracker": {
  15594. "description": "ExternalTracker represents settings for external tracker",
  15595. "type": "object",
  15596. "properties": {
  15597. "external_tracker_format": {
  15598. "description": "External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.",
  15599. "type": "string",
  15600. "x-go-name": "ExternalTrackerFormat"
  15601. },
  15602. "external_tracker_style": {
  15603. "description": "External Issue Tracker Number Format, either `numeric` or `alphanumeric`",
  15604. "type": "string",
  15605. "x-go-name": "ExternalTrackerStyle"
  15606. },
  15607. "external_tracker_url": {
  15608. "description": "URL of external issue tracker.",
  15609. "type": "string",
  15610. "x-go-name": "ExternalTrackerURL"
  15611. }
  15612. },
  15613. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15614. },
  15615. "ExternalWiki": {
  15616. "description": "ExternalWiki represents setting for external wiki",
  15617. "type": "object",
  15618. "properties": {
  15619. "external_wiki_url": {
  15620. "description": "URL of external wiki.",
  15621. "type": "string",
  15622. "x-go-name": "ExternalWikiURL"
  15623. }
  15624. },
  15625. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15626. },
  15627. "FileCommitResponse": {
  15628. "type": "object",
  15629. "title": "FileCommitResponse contains information generated from a Git commit for a repo's file.",
  15630. "properties": {
  15631. "author": {
  15632. "$ref": "#/definitions/CommitUser"
  15633. },
  15634. "committer": {
  15635. "$ref": "#/definitions/CommitUser"
  15636. },
  15637. "created": {
  15638. "type": "string",
  15639. "format": "date-time",
  15640. "x-go-name": "Created"
  15641. },
  15642. "html_url": {
  15643. "type": "string",
  15644. "x-go-name": "HTMLURL"
  15645. },
  15646. "message": {
  15647. "type": "string",
  15648. "x-go-name": "Message"
  15649. },
  15650. "parents": {
  15651. "type": "array",
  15652. "items": {
  15653. "$ref": "#/definitions/CommitMeta"
  15654. },
  15655. "x-go-name": "Parents"
  15656. },
  15657. "sha": {
  15658. "type": "string",
  15659. "x-go-name": "SHA"
  15660. },
  15661. "tree": {
  15662. "$ref": "#/definitions/CommitMeta"
  15663. },
  15664. "url": {
  15665. "type": "string",
  15666. "x-go-name": "URL"
  15667. }
  15668. },
  15669. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15670. },
  15671. "FileDeleteResponse": {
  15672. "description": "FileDeleteResponse contains information about a repo's file that was deleted",
  15673. "type": "object",
  15674. "properties": {
  15675. "commit": {
  15676. "$ref": "#/definitions/FileCommitResponse"
  15677. },
  15678. "content": {
  15679. "type": "object",
  15680. "x-go-name": "Content"
  15681. },
  15682. "verification": {
  15683. "$ref": "#/definitions/PayloadCommitVerification"
  15684. }
  15685. },
  15686. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15687. },
  15688. "FileLinksResponse": {
  15689. "description": "FileLinksResponse contains the links for a repo's file",
  15690. "type": "object",
  15691. "properties": {
  15692. "git": {
  15693. "type": "string",
  15694. "x-go-name": "GitURL"
  15695. },
  15696. "html": {
  15697. "type": "string",
  15698. "x-go-name": "HTMLURL"
  15699. },
  15700. "self": {
  15701. "type": "string",
  15702. "x-go-name": "Self"
  15703. }
  15704. },
  15705. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15706. },
  15707. "FileResponse": {
  15708. "description": "FileResponse contains information about a repo's file",
  15709. "type": "object",
  15710. "properties": {
  15711. "commit": {
  15712. "$ref": "#/definitions/FileCommitResponse"
  15713. },
  15714. "content": {
  15715. "$ref": "#/definitions/ContentsResponse"
  15716. },
  15717. "verification": {
  15718. "$ref": "#/definitions/PayloadCommitVerification"
  15719. }
  15720. },
  15721. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15722. },
  15723. "GPGKey": {
  15724. "description": "GPGKey a user GPG key to sign commit and tag in repository",
  15725. "type": "object",
  15726. "properties": {
  15727. "can_certify": {
  15728. "type": "boolean",
  15729. "x-go-name": "CanCertify"
  15730. },
  15731. "can_encrypt_comms": {
  15732. "type": "boolean",
  15733. "x-go-name": "CanEncryptComms"
  15734. },
  15735. "can_encrypt_storage": {
  15736. "type": "boolean",
  15737. "x-go-name": "CanEncryptStorage"
  15738. },
  15739. "can_sign": {
  15740. "type": "boolean",
  15741. "x-go-name": "CanSign"
  15742. },
  15743. "created_at": {
  15744. "type": "string",
  15745. "format": "date-time",
  15746. "x-go-name": "Created"
  15747. },
  15748. "emails": {
  15749. "type": "array",
  15750. "items": {
  15751. "$ref": "#/definitions/GPGKeyEmail"
  15752. },
  15753. "x-go-name": "Emails"
  15754. },
  15755. "expires_at": {
  15756. "type": "string",
  15757. "format": "date-time",
  15758. "x-go-name": "Expires"
  15759. },
  15760. "id": {
  15761. "type": "integer",
  15762. "format": "int64",
  15763. "x-go-name": "ID"
  15764. },
  15765. "key_id": {
  15766. "type": "string",
  15767. "x-go-name": "KeyID"
  15768. },
  15769. "primary_key_id": {
  15770. "type": "string",
  15771. "x-go-name": "PrimaryKeyID"
  15772. },
  15773. "public_key": {
  15774. "type": "string",
  15775. "x-go-name": "PublicKey"
  15776. },
  15777. "subkeys": {
  15778. "type": "array",
  15779. "items": {
  15780. "$ref": "#/definitions/GPGKey"
  15781. },
  15782. "x-go-name": "SubsKey"
  15783. },
  15784. "verified": {
  15785. "type": "boolean",
  15786. "x-go-name": "Verified"
  15787. }
  15788. },
  15789. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15790. },
  15791. "GPGKeyEmail": {
  15792. "description": "GPGKeyEmail an email attached to a GPGKey",
  15793. "type": "object",
  15794. "properties": {
  15795. "email": {
  15796. "type": "string",
  15797. "x-go-name": "Email"
  15798. },
  15799. "verified": {
  15800. "type": "boolean",
  15801. "x-go-name": "Verified"
  15802. }
  15803. },
  15804. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15805. },
  15806. "GeneralAPISettings": {
  15807. "description": "GeneralAPISettings contains global api settings exposed by it",
  15808. "type": "object",
  15809. "properties": {
  15810. "default_git_trees_per_page": {
  15811. "type": "integer",
  15812. "format": "int64",
  15813. "x-go-name": "DefaultGitTreesPerPage"
  15814. },
  15815. "default_max_blob_size": {
  15816. "type": "integer",
  15817. "format": "int64",
  15818. "x-go-name": "DefaultMaxBlobSize"
  15819. },
  15820. "default_paging_num": {
  15821. "type": "integer",
  15822. "format": "int64",
  15823. "x-go-name": "DefaultPagingNum"
  15824. },
  15825. "max_response_items": {
  15826. "type": "integer",
  15827. "format": "int64",
  15828. "x-go-name": "MaxResponseItems"
  15829. }
  15830. },
  15831. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15832. },
  15833. "GeneralAttachmentSettings": {
  15834. "description": "GeneralAttachmentSettings contains global Attachment settings exposed by API",
  15835. "type": "object",
  15836. "properties": {
  15837. "allowed_types": {
  15838. "type": "string",
  15839. "x-go-name": "AllowedTypes"
  15840. },
  15841. "enabled": {
  15842. "type": "boolean",
  15843. "x-go-name": "Enabled"
  15844. },
  15845. "max_files": {
  15846. "type": "integer",
  15847. "format": "int64",
  15848. "x-go-name": "MaxFiles"
  15849. },
  15850. "max_size": {
  15851. "type": "integer",
  15852. "format": "int64",
  15853. "x-go-name": "MaxSize"
  15854. }
  15855. },
  15856. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15857. },
  15858. "GeneralRepoSettings": {
  15859. "description": "GeneralRepoSettings contains global repository settings exposed by API",
  15860. "type": "object",
  15861. "properties": {
  15862. "http_git_disabled": {
  15863. "type": "boolean",
  15864. "x-go-name": "HTTPGitDisabled"
  15865. },
  15866. "lfs_disabled": {
  15867. "type": "boolean",
  15868. "x-go-name": "LFSDisabled"
  15869. },
  15870. "migrations_disabled": {
  15871. "type": "boolean",
  15872. "x-go-name": "MigrationsDisabled"
  15873. },
  15874. "mirrors_disabled": {
  15875. "type": "boolean",
  15876. "x-go-name": "MirrorsDisabled"
  15877. },
  15878. "stars_disabled": {
  15879. "type": "boolean",
  15880. "x-go-name": "StarsDisabled"
  15881. },
  15882. "time_tracking_disabled": {
  15883. "type": "boolean",
  15884. "x-go-name": "TimeTrackingDisabled"
  15885. }
  15886. },
  15887. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15888. },
  15889. "GeneralUISettings": {
  15890. "description": "GeneralUISettings contains global ui settings exposed by API",
  15891. "type": "object",
  15892. "properties": {
  15893. "allowed_reactions": {
  15894. "type": "array",
  15895. "items": {
  15896. "type": "string"
  15897. },
  15898. "x-go-name": "AllowedReactions"
  15899. },
  15900. "custom_emojis": {
  15901. "type": "array",
  15902. "items": {
  15903. "type": "string"
  15904. },
  15905. "x-go-name": "CustomEmojis"
  15906. },
  15907. "default_theme": {
  15908. "type": "string",
  15909. "x-go-name": "DefaultTheme"
  15910. }
  15911. },
  15912. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15913. },
  15914. "GenerateRepoOption": {
  15915. "description": "GenerateRepoOption options when creating repository using a template",
  15916. "type": "object",
  15917. "required": [
  15918. "owner",
  15919. "name"
  15920. ],
  15921. "properties": {
  15922. "avatar": {
  15923. "description": "include avatar of the template repo",
  15924. "type": "boolean",
  15925. "x-go-name": "Avatar"
  15926. },
  15927. "default_branch": {
  15928. "description": "Default branch of the new repository",
  15929. "type": "string",
  15930. "x-go-name": "DefaultBranch"
  15931. },
  15932. "description": {
  15933. "description": "Description of the repository to create",
  15934. "type": "string",
  15935. "x-go-name": "Description"
  15936. },
  15937. "git_content": {
  15938. "description": "include git content of default branch in template repo",
  15939. "type": "boolean",
  15940. "x-go-name": "GitContent"
  15941. },
  15942. "git_hooks": {
  15943. "description": "include git hooks in template repo",
  15944. "type": "boolean",
  15945. "x-go-name": "GitHooks"
  15946. },
  15947. "labels": {
  15948. "description": "include labels in template repo",
  15949. "type": "boolean",
  15950. "x-go-name": "Labels"
  15951. },
  15952. "name": {
  15953. "description": "Name of the repository to create",
  15954. "type": "string",
  15955. "uniqueItems": true,
  15956. "x-go-name": "Name"
  15957. },
  15958. "owner": {
  15959. "description": "The organization or person who will own the new repository",
  15960. "type": "string",
  15961. "x-go-name": "Owner"
  15962. },
  15963. "private": {
  15964. "description": "Whether the repository is private",
  15965. "type": "boolean",
  15966. "x-go-name": "Private"
  15967. },
  15968. "topics": {
  15969. "description": "include topics in template repo",
  15970. "type": "boolean",
  15971. "x-go-name": "Topics"
  15972. },
  15973. "webhooks": {
  15974. "description": "include webhooks in template repo",
  15975. "type": "boolean",
  15976. "x-go-name": "Webhooks"
  15977. }
  15978. },
  15979. "x-go-package": "code.gitea.io/gitea/modules/structs"
  15980. },
  15981. "GitBlobResponse": {
  15982. "description": "GitBlobResponse represents a git blob",
  15983. "type": "object",
  15984. "properties": {
  15985. "content": {
  15986. "type": "string",
  15987. "x-go-name": "Content"
  15988. },
  15989. "encoding": {
  15990. "type": "string",
  15991. "x-go-name": "Encoding"
  15992. },
  15993. "sha": {
  15994. "type": "string",
  15995. "x-go-name": "SHA"
  15996. },
  15997. "size": {
  15998. "type": "integer",
  15999. "format": "int64",
  16000. "x-go-name": "Size"
  16001. },
  16002. "url": {
  16003. "type": "string",
  16004. "x-go-name": "URL"
  16005. }
  16006. },
  16007. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16008. },
  16009. "GitEntry": {
  16010. "description": "GitEntry represents a git tree",
  16011. "type": "object",
  16012. "properties": {
  16013. "mode": {
  16014. "type": "string",
  16015. "x-go-name": "Mode"
  16016. },
  16017. "path": {
  16018. "type": "string",
  16019. "x-go-name": "Path"
  16020. },
  16021. "sha": {
  16022. "type": "string",
  16023. "x-go-name": "SHA"
  16024. },
  16025. "size": {
  16026. "type": "integer",
  16027. "format": "int64",
  16028. "x-go-name": "Size"
  16029. },
  16030. "type": {
  16031. "type": "string",
  16032. "x-go-name": "Type"
  16033. },
  16034. "url": {
  16035. "type": "string",
  16036. "x-go-name": "URL"
  16037. }
  16038. },
  16039. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16040. },
  16041. "GitHook": {
  16042. "description": "GitHook represents a Git repository hook",
  16043. "type": "object",
  16044. "properties": {
  16045. "content": {
  16046. "type": "string",
  16047. "x-go-name": "Content"
  16048. },
  16049. "is_active": {
  16050. "type": "boolean",
  16051. "x-go-name": "IsActive"
  16052. },
  16053. "name": {
  16054. "type": "string",
  16055. "x-go-name": "Name"
  16056. }
  16057. },
  16058. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16059. },
  16060. "GitObject": {
  16061. "type": "object",
  16062. "title": "GitObject represents a Git object.",
  16063. "properties": {
  16064. "sha": {
  16065. "type": "string",
  16066. "x-go-name": "SHA"
  16067. },
  16068. "type": {
  16069. "type": "string",
  16070. "x-go-name": "Type"
  16071. },
  16072. "url": {
  16073. "type": "string",
  16074. "x-go-name": "URL"
  16075. }
  16076. },
  16077. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16078. },
  16079. "GitTreeResponse": {
  16080. "description": "GitTreeResponse returns a git tree",
  16081. "type": "object",
  16082. "properties": {
  16083. "page": {
  16084. "type": "integer",
  16085. "format": "int64",
  16086. "x-go-name": "Page"
  16087. },
  16088. "sha": {
  16089. "type": "string",
  16090. "x-go-name": "SHA"
  16091. },
  16092. "total_count": {
  16093. "type": "integer",
  16094. "format": "int64",
  16095. "x-go-name": "TotalCount"
  16096. },
  16097. "tree": {
  16098. "type": "array",
  16099. "items": {
  16100. "$ref": "#/definitions/GitEntry"
  16101. },
  16102. "x-go-name": "Entries"
  16103. },
  16104. "truncated": {
  16105. "type": "boolean",
  16106. "x-go-name": "Truncated"
  16107. },
  16108. "url": {
  16109. "type": "string",
  16110. "x-go-name": "URL"
  16111. }
  16112. },
  16113. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16114. },
  16115. "Hook": {
  16116. "description": "Hook a hook is a web hook when one repository changed",
  16117. "type": "object",
  16118. "properties": {
  16119. "active": {
  16120. "type": "boolean",
  16121. "x-go-name": "Active"
  16122. },
  16123. "config": {
  16124. "type": "object",
  16125. "additionalProperties": {
  16126. "type": "string"
  16127. },
  16128. "x-go-name": "Config"
  16129. },
  16130. "created_at": {
  16131. "type": "string",
  16132. "format": "date-time",
  16133. "x-go-name": "Created"
  16134. },
  16135. "events": {
  16136. "type": "array",
  16137. "items": {
  16138. "type": "string"
  16139. },
  16140. "x-go-name": "Events"
  16141. },
  16142. "id": {
  16143. "type": "integer",
  16144. "format": "int64",
  16145. "x-go-name": "ID"
  16146. },
  16147. "type": {
  16148. "type": "string",
  16149. "x-go-name": "Type"
  16150. },
  16151. "updated_at": {
  16152. "type": "string",
  16153. "format": "date-time",
  16154. "x-go-name": "Updated"
  16155. }
  16156. },
  16157. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16158. },
  16159. "Identity": {
  16160. "description": "Identity for a person's identity like an author or committer",
  16161. "type": "object",
  16162. "properties": {
  16163. "email": {
  16164. "type": "string",
  16165. "format": "email",
  16166. "x-go-name": "Email"
  16167. },
  16168. "name": {
  16169. "type": "string",
  16170. "x-go-name": "Name"
  16171. }
  16172. },
  16173. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16174. },
  16175. "InternalTracker": {
  16176. "description": "InternalTracker represents settings for internal tracker",
  16177. "type": "object",
  16178. "properties": {
  16179. "allow_only_contributors_to_track_time": {
  16180. "description": "Let only contributors track time (Built-in issue tracker)",
  16181. "type": "boolean",
  16182. "x-go-name": "AllowOnlyContributorsToTrackTime"
  16183. },
  16184. "enable_issue_dependencies": {
  16185. "description": "Enable dependencies for issues and pull requests (Built-in issue tracker)",
  16186. "type": "boolean",
  16187. "x-go-name": "EnableIssueDependencies"
  16188. },
  16189. "enable_time_tracker": {
  16190. "description": "Enable time tracking (Built-in issue tracker)",
  16191. "type": "boolean",
  16192. "x-go-name": "EnableTimeTracker"
  16193. }
  16194. },
  16195. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16196. },
  16197. "Issue": {
  16198. "description": "Issue represents an issue in a repository",
  16199. "type": "object",
  16200. "properties": {
  16201. "assignee": {
  16202. "$ref": "#/definitions/User"
  16203. },
  16204. "assignees": {
  16205. "type": "array",
  16206. "items": {
  16207. "$ref": "#/definitions/User"
  16208. },
  16209. "x-go-name": "Assignees"
  16210. },
  16211. "body": {
  16212. "type": "string",
  16213. "x-go-name": "Body"
  16214. },
  16215. "closed_at": {
  16216. "type": "string",
  16217. "format": "date-time",
  16218. "x-go-name": "Closed"
  16219. },
  16220. "comments": {
  16221. "type": "integer",
  16222. "format": "int64",
  16223. "x-go-name": "Comments"
  16224. },
  16225. "created_at": {
  16226. "type": "string",
  16227. "format": "date-time",
  16228. "x-go-name": "Created"
  16229. },
  16230. "due_date": {
  16231. "type": "string",
  16232. "format": "date-time",
  16233. "x-go-name": "Deadline"
  16234. },
  16235. "html_url": {
  16236. "type": "string",
  16237. "x-go-name": "HTMLURL"
  16238. },
  16239. "id": {
  16240. "type": "integer",
  16241. "format": "int64",
  16242. "x-go-name": "ID"
  16243. },
  16244. "is_locked": {
  16245. "type": "boolean",
  16246. "x-go-name": "IsLocked"
  16247. },
  16248. "labels": {
  16249. "type": "array",
  16250. "items": {
  16251. "$ref": "#/definitions/Label"
  16252. },
  16253. "x-go-name": "Labels"
  16254. },
  16255. "milestone": {
  16256. "$ref": "#/definitions/Milestone"
  16257. },
  16258. "number": {
  16259. "type": "integer",
  16260. "format": "int64",
  16261. "x-go-name": "Index"
  16262. },
  16263. "original_author": {
  16264. "type": "string",
  16265. "x-go-name": "OriginalAuthor"
  16266. },
  16267. "original_author_id": {
  16268. "type": "integer",
  16269. "format": "int64",
  16270. "x-go-name": "OriginalAuthorID"
  16271. },
  16272. "pull_request": {
  16273. "$ref": "#/definitions/PullRequestMeta"
  16274. },
  16275. "ref": {
  16276. "type": "string",
  16277. "x-go-name": "Ref"
  16278. },
  16279. "repository": {
  16280. "$ref": "#/definitions/RepositoryMeta"
  16281. },
  16282. "state": {
  16283. "$ref": "#/definitions/StateType"
  16284. },
  16285. "title": {
  16286. "type": "string",
  16287. "x-go-name": "Title"
  16288. },
  16289. "updated_at": {
  16290. "type": "string",
  16291. "format": "date-time",
  16292. "x-go-name": "Updated"
  16293. },
  16294. "url": {
  16295. "type": "string",
  16296. "x-go-name": "URL"
  16297. },
  16298. "user": {
  16299. "$ref": "#/definitions/User"
  16300. }
  16301. },
  16302. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16303. },
  16304. "IssueDeadline": {
  16305. "description": "IssueDeadline represents an issue deadline",
  16306. "type": "object",
  16307. "properties": {
  16308. "due_date": {
  16309. "type": "string",
  16310. "format": "date-time",
  16311. "x-go-name": "Deadline"
  16312. }
  16313. },
  16314. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16315. },
  16316. "IssueLabelsOption": {
  16317. "description": "IssueLabelsOption a collection of labels",
  16318. "type": "object",
  16319. "properties": {
  16320. "labels": {
  16321. "description": "list of label IDs",
  16322. "type": "array",
  16323. "items": {
  16324. "type": "integer",
  16325. "format": "int64"
  16326. },
  16327. "x-go-name": "Labels"
  16328. }
  16329. },
  16330. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16331. },
  16332. "IssueTemplate": {
  16333. "description": "IssueTemplate represents an issue template for a repository",
  16334. "type": "object",
  16335. "properties": {
  16336. "about": {
  16337. "type": "string",
  16338. "x-go-name": "About"
  16339. },
  16340. "content": {
  16341. "type": "string",
  16342. "x-go-name": "Content"
  16343. },
  16344. "file_name": {
  16345. "type": "string",
  16346. "x-go-name": "FileName"
  16347. },
  16348. "labels": {
  16349. "type": "array",
  16350. "items": {
  16351. "type": "string"
  16352. },
  16353. "x-go-name": "Labels"
  16354. },
  16355. "name": {
  16356. "type": "string",
  16357. "x-go-name": "Name"
  16358. },
  16359. "ref": {
  16360. "type": "string",
  16361. "x-go-name": "Ref"
  16362. },
  16363. "title": {
  16364. "type": "string",
  16365. "x-go-name": "Title"
  16366. }
  16367. },
  16368. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16369. },
  16370. "Label": {
  16371. "description": "Label a label to an issue or a pr",
  16372. "type": "object",
  16373. "properties": {
  16374. "color": {
  16375. "type": "string",
  16376. "x-go-name": "Color",
  16377. "example": "00aabb"
  16378. },
  16379. "description": {
  16380. "type": "string",
  16381. "x-go-name": "Description"
  16382. },
  16383. "id": {
  16384. "type": "integer",
  16385. "format": "int64",
  16386. "x-go-name": "ID"
  16387. },
  16388. "name": {
  16389. "type": "string",
  16390. "x-go-name": "Name"
  16391. },
  16392. "url": {
  16393. "type": "string",
  16394. "x-go-name": "URL"
  16395. }
  16396. },
  16397. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16398. },
  16399. "MarkdownOption": {
  16400. "description": "MarkdownOption markdown options",
  16401. "type": "object",
  16402. "properties": {
  16403. "Context": {
  16404. "description": "Context to render\n\nin: body",
  16405. "type": "string"
  16406. },
  16407. "Mode": {
  16408. "description": "Mode to render\n\nin: body",
  16409. "type": "string"
  16410. },
  16411. "Text": {
  16412. "description": "Text markdown to render\n\nin: body",
  16413. "type": "string"
  16414. },
  16415. "Wiki": {
  16416. "description": "Is it a wiki page ?\n\nin: body",
  16417. "type": "boolean"
  16418. }
  16419. },
  16420. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16421. },
  16422. "MergePullRequestOption": {
  16423. "description": "MergePullRequestForm form for merging Pull Request",
  16424. "type": "object",
  16425. "required": [
  16426. "Do"
  16427. ],
  16428. "properties": {
  16429. "Do": {
  16430. "type": "string",
  16431. "enum": [
  16432. "merge",
  16433. "rebase",
  16434. "rebase-merge",
  16435. "squash",
  16436. "manually-merged"
  16437. ]
  16438. },
  16439. "MergeCommitID": {
  16440. "type": "string"
  16441. },
  16442. "MergeMessageField": {
  16443. "type": "string"
  16444. },
  16445. "MergeTitleField": {
  16446. "type": "string"
  16447. },
  16448. "delete_branch_after_merge": {
  16449. "type": "boolean",
  16450. "x-go-name": "DeleteBranchAfterMerge"
  16451. },
  16452. "force_merge": {
  16453. "type": "boolean",
  16454. "x-go-name": "ForceMerge"
  16455. },
  16456. "head_commit_id": {
  16457. "type": "string",
  16458. "x-go-name": "HeadCommitID"
  16459. },
  16460. "merge_when_checks_succeed": {
  16461. "type": "boolean",
  16462. "x-go-name": "MergeWhenChecksSucceed"
  16463. }
  16464. },
  16465. "x-go-name": "MergePullRequestForm",
  16466. "x-go-package": "code.gitea.io/gitea/services/forms"
  16467. },
  16468. "MigrateRepoOptions": {
  16469. "description": "MigrateRepoOptions options for migrating repository's\nthis is used to interact with api v1",
  16470. "type": "object",
  16471. "required": [
  16472. "clone_addr",
  16473. "repo_name"
  16474. ],
  16475. "properties": {
  16476. "auth_password": {
  16477. "type": "string",
  16478. "x-go-name": "AuthPassword"
  16479. },
  16480. "auth_token": {
  16481. "type": "string",
  16482. "x-go-name": "AuthToken"
  16483. },
  16484. "auth_username": {
  16485. "type": "string",
  16486. "x-go-name": "AuthUsername"
  16487. },
  16488. "clone_addr": {
  16489. "type": "string",
  16490. "x-go-name": "CloneAddr"
  16491. },
  16492. "description": {
  16493. "type": "string",
  16494. "x-go-name": "Description"
  16495. },
  16496. "issues": {
  16497. "type": "boolean",
  16498. "x-go-name": "Issues"
  16499. },
  16500. "labels": {
  16501. "type": "boolean",
  16502. "x-go-name": "Labels"
  16503. },
  16504. "lfs": {
  16505. "type": "boolean",
  16506. "x-go-name": "LFS"
  16507. },
  16508. "lfs_endpoint": {
  16509. "type": "string",
  16510. "x-go-name": "LFSEndpoint"
  16511. },
  16512. "milestones": {
  16513. "type": "boolean",
  16514. "x-go-name": "Milestones"
  16515. },
  16516. "mirror": {
  16517. "type": "boolean",
  16518. "x-go-name": "Mirror"
  16519. },
  16520. "mirror_interval": {
  16521. "type": "string",
  16522. "x-go-name": "MirrorInterval"
  16523. },
  16524. "private": {
  16525. "type": "boolean",
  16526. "x-go-name": "Private"
  16527. },
  16528. "pull_requests": {
  16529. "type": "boolean",
  16530. "x-go-name": "PullRequests"
  16531. },
  16532. "releases": {
  16533. "type": "boolean",
  16534. "x-go-name": "Releases"
  16535. },
  16536. "repo_name": {
  16537. "type": "string",
  16538. "x-go-name": "RepoName"
  16539. },
  16540. "repo_owner": {
  16541. "description": "Name of User or Organisation who will own Repo after migration",
  16542. "type": "string",
  16543. "x-go-name": "RepoOwner"
  16544. },
  16545. "service": {
  16546. "type": "string",
  16547. "enum": [
  16548. "git",
  16549. "github",
  16550. "gitea",
  16551. "gitlab"
  16552. ],
  16553. "x-go-name": "Service"
  16554. },
  16555. "uid": {
  16556. "description": "deprecated (only for backwards compatibility)",
  16557. "type": "integer",
  16558. "format": "int64",
  16559. "x-go-name": "RepoOwnerID"
  16560. },
  16561. "wiki": {
  16562. "type": "boolean",
  16563. "x-go-name": "Wiki"
  16564. }
  16565. },
  16566. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16567. },
  16568. "Milestone": {
  16569. "description": "Milestone milestone is a collection of issues on one repository",
  16570. "type": "object",
  16571. "properties": {
  16572. "closed_at": {
  16573. "type": "string",
  16574. "format": "date-time",
  16575. "x-go-name": "Closed"
  16576. },
  16577. "closed_issues": {
  16578. "type": "integer",
  16579. "format": "int64",
  16580. "x-go-name": "ClosedIssues"
  16581. },
  16582. "created_at": {
  16583. "type": "string",
  16584. "format": "date-time",
  16585. "x-go-name": "Created"
  16586. },
  16587. "description": {
  16588. "type": "string",
  16589. "x-go-name": "Description"
  16590. },
  16591. "due_on": {
  16592. "type": "string",
  16593. "format": "date-time",
  16594. "x-go-name": "Deadline"
  16595. },
  16596. "id": {
  16597. "type": "integer",
  16598. "format": "int64",
  16599. "x-go-name": "ID"
  16600. },
  16601. "open_issues": {
  16602. "type": "integer",
  16603. "format": "int64",
  16604. "x-go-name": "OpenIssues"
  16605. },
  16606. "state": {
  16607. "$ref": "#/definitions/StateType"
  16608. },
  16609. "title": {
  16610. "type": "string",
  16611. "x-go-name": "Title"
  16612. },
  16613. "updated_at": {
  16614. "type": "string",
  16615. "format": "date-time",
  16616. "x-go-name": "Updated"
  16617. }
  16618. },
  16619. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16620. },
  16621. "NodeInfo": {
  16622. "description": "NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks",
  16623. "type": "object",
  16624. "properties": {
  16625. "metadata": {
  16626. "type": "object",
  16627. "x-go-name": "Metadata"
  16628. },
  16629. "openRegistrations": {
  16630. "type": "boolean",
  16631. "x-go-name": "OpenRegistrations"
  16632. },
  16633. "protocols": {
  16634. "type": "array",
  16635. "items": {
  16636. "type": "string"
  16637. },
  16638. "x-go-name": "Protocols"
  16639. },
  16640. "services": {
  16641. "$ref": "#/definitions/NodeInfoServices"
  16642. },
  16643. "software": {
  16644. "$ref": "#/definitions/NodeInfoSoftware"
  16645. },
  16646. "usage": {
  16647. "$ref": "#/definitions/NodeInfoUsage"
  16648. },
  16649. "version": {
  16650. "type": "string",
  16651. "x-go-name": "Version"
  16652. }
  16653. },
  16654. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16655. },
  16656. "NodeInfoServices": {
  16657. "description": "NodeInfoServices contains the third party sites this server can connect to via their application API",
  16658. "type": "object",
  16659. "properties": {
  16660. "inbound": {
  16661. "type": "array",
  16662. "items": {
  16663. "type": "string"
  16664. },
  16665. "x-go-name": "Inbound"
  16666. },
  16667. "outbound": {
  16668. "type": "array",
  16669. "items": {
  16670. "type": "string"
  16671. },
  16672. "x-go-name": "Outbound"
  16673. }
  16674. },
  16675. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16676. },
  16677. "NodeInfoSoftware": {
  16678. "description": "NodeInfoSoftware contains Metadata about server software in use",
  16679. "type": "object",
  16680. "properties": {
  16681. "homepage": {
  16682. "type": "string",
  16683. "x-go-name": "Homepage"
  16684. },
  16685. "name": {
  16686. "type": "string",
  16687. "x-go-name": "Name"
  16688. },
  16689. "repository": {
  16690. "type": "string",
  16691. "x-go-name": "Repository"
  16692. },
  16693. "version": {
  16694. "type": "string",
  16695. "x-go-name": "Version"
  16696. }
  16697. },
  16698. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16699. },
  16700. "NodeInfoUsage": {
  16701. "description": "NodeInfoUsage contains usage statistics for this server",
  16702. "type": "object",
  16703. "properties": {
  16704. "localComments": {
  16705. "type": "integer",
  16706. "format": "int64",
  16707. "x-go-name": "LocalComments"
  16708. },
  16709. "localPosts": {
  16710. "type": "integer",
  16711. "format": "int64",
  16712. "x-go-name": "LocalPosts"
  16713. },
  16714. "users": {
  16715. "$ref": "#/definitions/NodeInfoUsageUsers"
  16716. }
  16717. },
  16718. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16719. },
  16720. "NodeInfoUsageUsers": {
  16721. "description": "NodeInfoUsageUsers contains statistics about the users of this server",
  16722. "type": "object",
  16723. "properties": {
  16724. "activeHalfyear": {
  16725. "type": "integer",
  16726. "format": "int64",
  16727. "x-go-name": "ActiveHalfyear"
  16728. },
  16729. "activeMonth": {
  16730. "type": "integer",
  16731. "format": "int64",
  16732. "x-go-name": "ActiveMonth"
  16733. },
  16734. "total": {
  16735. "type": "integer",
  16736. "format": "int64",
  16737. "x-go-name": "Total"
  16738. }
  16739. },
  16740. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16741. },
  16742. "Note": {
  16743. "description": "Note contains information related to a git note",
  16744. "type": "object",
  16745. "properties": {
  16746. "commit": {
  16747. "$ref": "#/definitions/Commit"
  16748. },
  16749. "message": {
  16750. "type": "string",
  16751. "x-go-name": "Message"
  16752. }
  16753. },
  16754. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16755. },
  16756. "NotificationCount": {
  16757. "description": "NotificationCount number of unread notifications",
  16758. "type": "object",
  16759. "properties": {
  16760. "new": {
  16761. "type": "integer",
  16762. "format": "int64",
  16763. "x-go-name": "New"
  16764. }
  16765. },
  16766. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16767. },
  16768. "NotificationSubject": {
  16769. "description": "NotificationSubject contains the notification subject (Issue/Pull/Commit)",
  16770. "type": "object",
  16771. "properties": {
  16772. "html_url": {
  16773. "type": "string",
  16774. "x-go-name": "HTMLURL"
  16775. },
  16776. "latest_comment_html_url": {
  16777. "type": "string",
  16778. "x-go-name": "LatestCommentHTMLURL"
  16779. },
  16780. "latest_comment_url": {
  16781. "type": "string",
  16782. "x-go-name": "LatestCommentURL"
  16783. },
  16784. "state": {
  16785. "$ref": "#/definitions/StateType"
  16786. },
  16787. "title": {
  16788. "type": "string",
  16789. "x-go-name": "Title"
  16790. },
  16791. "type": {
  16792. "$ref": "#/definitions/NotifySubjectType"
  16793. },
  16794. "url": {
  16795. "type": "string",
  16796. "x-go-name": "URL"
  16797. }
  16798. },
  16799. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16800. },
  16801. "NotificationThread": {
  16802. "description": "NotificationThread expose Notification on API",
  16803. "type": "object",
  16804. "properties": {
  16805. "id": {
  16806. "type": "integer",
  16807. "format": "int64",
  16808. "x-go-name": "ID"
  16809. },
  16810. "pinned": {
  16811. "type": "boolean",
  16812. "x-go-name": "Pinned"
  16813. },
  16814. "repository": {
  16815. "$ref": "#/definitions/Repository"
  16816. },
  16817. "subject": {
  16818. "$ref": "#/definitions/NotificationSubject"
  16819. },
  16820. "unread": {
  16821. "type": "boolean",
  16822. "x-go-name": "Unread"
  16823. },
  16824. "updated_at": {
  16825. "type": "string",
  16826. "format": "date-time",
  16827. "x-go-name": "UpdatedAt"
  16828. },
  16829. "url": {
  16830. "type": "string",
  16831. "x-go-name": "URL"
  16832. }
  16833. },
  16834. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16835. },
  16836. "NotifySubjectType": {
  16837. "description": "NotifySubjectType represent type of notification subject",
  16838. "type": "string",
  16839. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16840. },
  16841. "OAuth2Application": {
  16842. "type": "object",
  16843. "title": "OAuth2Application represents an OAuth2 application.",
  16844. "properties": {
  16845. "client_id": {
  16846. "type": "string",
  16847. "x-go-name": "ClientID"
  16848. },
  16849. "client_secret": {
  16850. "type": "string",
  16851. "x-go-name": "ClientSecret"
  16852. },
  16853. "created": {
  16854. "type": "string",
  16855. "format": "date-time",
  16856. "x-go-name": "Created"
  16857. },
  16858. "id": {
  16859. "type": "integer",
  16860. "format": "int64",
  16861. "x-go-name": "ID"
  16862. },
  16863. "name": {
  16864. "type": "string",
  16865. "x-go-name": "Name"
  16866. },
  16867. "redirect_uris": {
  16868. "type": "array",
  16869. "items": {
  16870. "type": "string"
  16871. },
  16872. "x-go-name": "RedirectURIs"
  16873. }
  16874. },
  16875. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16876. },
  16877. "Organization": {
  16878. "description": "Organization represents an organization",
  16879. "type": "object",
  16880. "properties": {
  16881. "avatar_url": {
  16882. "type": "string",
  16883. "x-go-name": "AvatarURL"
  16884. },
  16885. "description": {
  16886. "type": "string",
  16887. "x-go-name": "Description"
  16888. },
  16889. "full_name": {
  16890. "type": "string",
  16891. "x-go-name": "FullName"
  16892. },
  16893. "id": {
  16894. "type": "integer",
  16895. "format": "int64",
  16896. "x-go-name": "ID"
  16897. },
  16898. "location": {
  16899. "type": "string",
  16900. "x-go-name": "Location"
  16901. },
  16902. "repo_admin_change_team_access": {
  16903. "type": "boolean",
  16904. "x-go-name": "RepoAdminChangeTeamAccess"
  16905. },
  16906. "username": {
  16907. "type": "string",
  16908. "x-go-name": "UserName"
  16909. },
  16910. "visibility": {
  16911. "type": "string",
  16912. "x-go-name": "Visibility"
  16913. },
  16914. "website": {
  16915. "type": "string",
  16916. "x-go-name": "Website"
  16917. }
  16918. },
  16919. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16920. },
  16921. "OrganizationPermissions": {
  16922. "description": "OrganizationPermissions list different users permissions on an organization",
  16923. "type": "object",
  16924. "properties": {
  16925. "can_create_repository": {
  16926. "type": "boolean",
  16927. "x-go-name": "CanCreateRepository"
  16928. },
  16929. "can_read": {
  16930. "type": "boolean",
  16931. "x-go-name": "CanRead"
  16932. },
  16933. "can_write": {
  16934. "type": "boolean",
  16935. "x-go-name": "CanWrite"
  16936. },
  16937. "is_admin": {
  16938. "type": "boolean",
  16939. "x-go-name": "IsAdmin"
  16940. },
  16941. "is_owner": {
  16942. "type": "boolean",
  16943. "x-go-name": "IsOwner"
  16944. }
  16945. },
  16946. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16947. },
  16948. "PRBranchInfo": {
  16949. "description": "PRBranchInfo information about a branch",
  16950. "type": "object",
  16951. "properties": {
  16952. "label": {
  16953. "type": "string",
  16954. "x-go-name": "Name"
  16955. },
  16956. "ref": {
  16957. "type": "string",
  16958. "x-go-name": "Ref"
  16959. },
  16960. "repo": {
  16961. "$ref": "#/definitions/Repository"
  16962. },
  16963. "repo_id": {
  16964. "type": "integer",
  16965. "format": "int64",
  16966. "x-go-name": "RepoID"
  16967. },
  16968. "sha": {
  16969. "type": "string",
  16970. "x-go-name": "Sha"
  16971. }
  16972. },
  16973. "x-go-package": "code.gitea.io/gitea/modules/structs"
  16974. },
  16975. "Package": {
  16976. "description": "Package represents a package",
  16977. "type": "object",
  16978. "properties": {
  16979. "created_at": {
  16980. "type": "string",
  16981. "format": "date-time",
  16982. "x-go-name": "CreatedAt"
  16983. },
  16984. "creator": {
  16985. "$ref": "#/definitions/User"
  16986. },
  16987. "id": {
  16988. "type": "integer",
  16989. "format": "int64",
  16990. "x-go-name": "ID"
  16991. },
  16992. "name": {
  16993. "type": "string",
  16994. "x-go-name": "Name"
  16995. },
  16996. "owner": {
  16997. "$ref": "#/definitions/User"
  16998. },
  16999. "repository": {
  17000. "$ref": "#/definitions/Repository"
  17001. },
  17002. "type": {
  17003. "type": "string",
  17004. "x-go-name": "Type"
  17005. },
  17006. "version": {
  17007. "type": "string",
  17008. "x-go-name": "Version"
  17009. }
  17010. },
  17011. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17012. },
  17013. "PackageFile": {
  17014. "description": "PackageFile represents a package file",
  17015. "type": "object",
  17016. "properties": {
  17017. "Size": {
  17018. "type": "integer",
  17019. "format": "int64"
  17020. },
  17021. "id": {
  17022. "type": "integer",
  17023. "format": "int64",
  17024. "x-go-name": "ID"
  17025. },
  17026. "md5": {
  17027. "type": "string",
  17028. "x-go-name": "HashMD5"
  17029. },
  17030. "name": {
  17031. "type": "string",
  17032. "x-go-name": "Name"
  17033. },
  17034. "sha1": {
  17035. "type": "string",
  17036. "x-go-name": "HashSHA1"
  17037. },
  17038. "sha256": {
  17039. "type": "string",
  17040. "x-go-name": "HashSHA256"
  17041. },
  17042. "sha512": {
  17043. "type": "string",
  17044. "x-go-name": "HashSHA512"
  17045. }
  17046. },
  17047. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17048. },
  17049. "PayloadCommit": {
  17050. "description": "PayloadCommit represents a commit",
  17051. "type": "object",
  17052. "properties": {
  17053. "added": {
  17054. "type": "array",
  17055. "items": {
  17056. "type": "string"
  17057. },
  17058. "x-go-name": "Added"
  17059. },
  17060. "author": {
  17061. "$ref": "#/definitions/PayloadUser"
  17062. },
  17063. "committer": {
  17064. "$ref": "#/definitions/PayloadUser"
  17065. },
  17066. "id": {
  17067. "description": "sha1 hash of the commit",
  17068. "type": "string",
  17069. "x-go-name": "ID"
  17070. },
  17071. "message": {
  17072. "type": "string",
  17073. "x-go-name": "Message"
  17074. },
  17075. "modified": {
  17076. "type": "array",
  17077. "items": {
  17078. "type": "string"
  17079. },
  17080. "x-go-name": "Modified"
  17081. },
  17082. "removed": {
  17083. "type": "array",
  17084. "items": {
  17085. "type": "string"
  17086. },
  17087. "x-go-name": "Removed"
  17088. },
  17089. "timestamp": {
  17090. "type": "string",
  17091. "format": "date-time",
  17092. "x-go-name": "Timestamp"
  17093. },
  17094. "url": {
  17095. "type": "string",
  17096. "x-go-name": "URL"
  17097. },
  17098. "verification": {
  17099. "$ref": "#/definitions/PayloadCommitVerification"
  17100. }
  17101. },
  17102. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17103. },
  17104. "PayloadCommitVerification": {
  17105. "description": "PayloadCommitVerification represents the GPG verification of a commit",
  17106. "type": "object",
  17107. "properties": {
  17108. "payload": {
  17109. "type": "string",
  17110. "x-go-name": "Payload"
  17111. },
  17112. "reason": {
  17113. "type": "string",
  17114. "x-go-name": "Reason"
  17115. },
  17116. "signature": {
  17117. "type": "string",
  17118. "x-go-name": "Signature"
  17119. },
  17120. "signer": {
  17121. "$ref": "#/definitions/PayloadUser"
  17122. },
  17123. "verified": {
  17124. "type": "boolean",
  17125. "x-go-name": "Verified"
  17126. }
  17127. },
  17128. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17129. },
  17130. "PayloadUser": {
  17131. "description": "PayloadUser represents the author or committer of a commit",
  17132. "type": "object",
  17133. "properties": {
  17134. "email": {
  17135. "type": "string",
  17136. "format": "email",
  17137. "x-go-name": "Email"
  17138. },
  17139. "name": {
  17140. "description": "Full name of the commit author",
  17141. "type": "string",
  17142. "x-go-name": "Name"
  17143. },
  17144. "username": {
  17145. "type": "string",
  17146. "x-go-name": "UserName"
  17147. }
  17148. },
  17149. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17150. },
  17151. "Permission": {
  17152. "description": "Permission represents a set of permissions",
  17153. "type": "object",
  17154. "properties": {
  17155. "admin": {
  17156. "type": "boolean",
  17157. "x-go-name": "Admin"
  17158. },
  17159. "pull": {
  17160. "type": "boolean",
  17161. "x-go-name": "Pull"
  17162. },
  17163. "push": {
  17164. "type": "boolean",
  17165. "x-go-name": "Push"
  17166. }
  17167. },
  17168. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17169. },
  17170. "PublicKey": {
  17171. "description": "PublicKey publickey is a user key to push code to repository",
  17172. "type": "object",
  17173. "properties": {
  17174. "created_at": {
  17175. "type": "string",
  17176. "format": "date-time",
  17177. "x-go-name": "Created"
  17178. },
  17179. "fingerprint": {
  17180. "type": "string",
  17181. "x-go-name": "Fingerprint"
  17182. },
  17183. "id": {
  17184. "type": "integer",
  17185. "format": "int64",
  17186. "x-go-name": "ID"
  17187. },
  17188. "key": {
  17189. "type": "string",
  17190. "x-go-name": "Key"
  17191. },
  17192. "key_type": {
  17193. "type": "string",
  17194. "x-go-name": "KeyType"
  17195. },
  17196. "read_only": {
  17197. "type": "boolean",
  17198. "x-go-name": "ReadOnly"
  17199. },
  17200. "title": {
  17201. "type": "string",
  17202. "x-go-name": "Title"
  17203. },
  17204. "url": {
  17205. "type": "string",
  17206. "x-go-name": "URL"
  17207. },
  17208. "user": {
  17209. "$ref": "#/definitions/User"
  17210. }
  17211. },
  17212. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17213. },
  17214. "PullRequest": {
  17215. "description": "PullRequest represents a pull request",
  17216. "type": "object",
  17217. "properties": {
  17218. "allow_maintainer_edit": {
  17219. "type": "boolean",
  17220. "x-go-name": "AllowMaintainerEdit"
  17221. },
  17222. "assignee": {
  17223. "$ref": "#/definitions/User"
  17224. },
  17225. "assignees": {
  17226. "type": "array",
  17227. "items": {
  17228. "$ref": "#/definitions/User"
  17229. },
  17230. "x-go-name": "Assignees"
  17231. },
  17232. "base": {
  17233. "$ref": "#/definitions/PRBranchInfo"
  17234. },
  17235. "body": {
  17236. "type": "string",
  17237. "x-go-name": "Body"
  17238. },
  17239. "closed_at": {
  17240. "type": "string",
  17241. "format": "date-time",
  17242. "x-go-name": "Closed"
  17243. },
  17244. "comments": {
  17245. "type": "integer",
  17246. "format": "int64",
  17247. "x-go-name": "Comments"
  17248. },
  17249. "created_at": {
  17250. "type": "string",
  17251. "format": "date-time",
  17252. "x-go-name": "Created"
  17253. },
  17254. "diff_url": {
  17255. "type": "string",
  17256. "x-go-name": "DiffURL"
  17257. },
  17258. "due_date": {
  17259. "type": "string",
  17260. "format": "date-time",
  17261. "x-go-name": "Deadline"
  17262. },
  17263. "head": {
  17264. "$ref": "#/definitions/PRBranchInfo"
  17265. },
  17266. "html_url": {
  17267. "type": "string",
  17268. "x-go-name": "HTMLURL"
  17269. },
  17270. "id": {
  17271. "type": "integer",
  17272. "format": "int64",
  17273. "x-go-name": "ID"
  17274. },
  17275. "is_locked": {
  17276. "type": "boolean",
  17277. "x-go-name": "IsLocked"
  17278. },
  17279. "labels": {
  17280. "type": "array",
  17281. "items": {
  17282. "$ref": "#/definitions/Label"
  17283. },
  17284. "x-go-name": "Labels"
  17285. },
  17286. "merge_base": {
  17287. "type": "string",
  17288. "x-go-name": "MergeBase"
  17289. },
  17290. "merge_commit_sha": {
  17291. "type": "string",
  17292. "x-go-name": "MergedCommitID"
  17293. },
  17294. "mergeable": {
  17295. "type": "boolean",
  17296. "x-go-name": "Mergeable"
  17297. },
  17298. "merged": {
  17299. "type": "boolean",
  17300. "x-go-name": "HasMerged"
  17301. },
  17302. "merged_at": {
  17303. "type": "string",
  17304. "format": "date-time",
  17305. "x-go-name": "Merged"
  17306. },
  17307. "merged_by": {
  17308. "$ref": "#/definitions/User"
  17309. },
  17310. "milestone": {
  17311. "$ref": "#/definitions/Milestone"
  17312. },
  17313. "number": {
  17314. "type": "integer",
  17315. "format": "int64",
  17316. "x-go-name": "Index"
  17317. },
  17318. "patch_url": {
  17319. "type": "string",
  17320. "x-go-name": "PatchURL"
  17321. },
  17322. "state": {
  17323. "$ref": "#/definitions/StateType"
  17324. },
  17325. "title": {
  17326. "type": "string",
  17327. "x-go-name": "Title"
  17328. },
  17329. "updated_at": {
  17330. "type": "string",
  17331. "format": "date-time",
  17332. "x-go-name": "Updated"
  17333. },
  17334. "url": {
  17335. "type": "string",
  17336. "x-go-name": "URL"
  17337. },
  17338. "user": {
  17339. "$ref": "#/definitions/User"
  17340. }
  17341. },
  17342. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17343. },
  17344. "PullRequestMeta": {
  17345. "description": "PullRequestMeta PR info if an issue is a PR",
  17346. "type": "object",
  17347. "properties": {
  17348. "merged": {
  17349. "type": "boolean",
  17350. "x-go-name": "HasMerged"
  17351. },
  17352. "merged_at": {
  17353. "type": "string",
  17354. "format": "date-time",
  17355. "x-go-name": "Merged"
  17356. }
  17357. },
  17358. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17359. },
  17360. "PullReview": {
  17361. "description": "PullReview represents a pull request review",
  17362. "type": "object",
  17363. "properties": {
  17364. "body": {
  17365. "type": "string",
  17366. "x-go-name": "Body"
  17367. },
  17368. "comments_count": {
  17369. "type": "integer",
  17370. "format": "int64",
  17371. "x-go-name": "CodeCommentsCount"
  17372. },
  17373. "commit_id": {
  17374. "type": "string",
  17375. "x-go-name": "CommitID"
  17376. },
  17377. "dismissed": {
  17378. "type": "boolean",
  17379. "x-go-name": "Dismissed"
  17380. },
  17381. "html_url": {
  17382. "type": "string",
  17383. "x-go-name": "HTMLURL"
  17384. },
  17385. "id": {
  17386. "type": "integer",
  17387. "format": "int64",
  17388. "x-go-name": "ID"
  17389. },
  17390. "official": {
  17391. "type": "boolean",
  17392. "x-go-name": "Official"
  17393. },
  17394. "pull_request_url": {
  17395. "type": "string",
  17396. "x-go-name": "HTMLPullURL"
  17397. },
  17398. "stale": {
  17399. "type": "boolean",
  17400. "x-go-name": "Stale"
  17401. },
  17402. "state": {
  17403. "$ref": "#/definitions/ReviewStateType"
  17404. },
  17405. "submitted_at": {
  17406. "type": "string",
  17407. "format": "date-time",
  17408. "x-go-name": "Submitted"
  17409. },
  17410. "team": {
  17411. "$ref": "#/definitions/Team"
  17412. },
  17413. "user": {
  17414. "$ref": "#/definitions/User"
  17415. }
  17416. },
  17417. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17418. },
  17419. "PullReviewComment": {
  17420. "description": "PullReviewComment represents a comment on a pull request review",
  17421. "type": "object",
  17422. "properties": {
  17423. "body": {
  17424. "type": "string",
  17425. "x-go-name": "Body"
  17426. },
  17427. "commit_id": {
  17428. "type": "string",
  17429. "x-go-name": "CommitID"
  17430. },
  17431. "created_at": {
  17432. "type": "string",
  17433. "format": "date-time",
  17434. "x-go-name": "Created"
  17435. },
  17436. "diff_hunk": {
  17437. "type": "string",
  17438. "x-go-name": "DiffHunk"
  17439. },
  17440. "html_url": {
  17441. "type": "string",
  17442. "x-go-name": "HTMLURL"
  17443. },
  17444. "id": {
  17445. "type": "integer",
  17446. "format": "int64",
  17447. "x-go-name": "ID"
  17448. },
  17449. "original_commit_id": {
  17450. "type": "string",
  17451. "x-go-name": "OrigCommitID"
  17452. },
  17453. "original_position": {
  17454. "type": "integer",
  17455. "format": "uint64",
  17456. "x-go-name": "OldLineNum"
  17457. },
  17458. "path": {
  17459. "type": "string",
  17460. "x-go-name": "Path"
  17461. },
  17462. "position": {
  17463. "type": "integer",
  17464. "format": "uint64",
  17465. "x-go-name": "LineNum"
  17466. },
  17467. "pull_request_review_id": {
  17468. "type": "integer",
  17469. "format": "int64",
  17470. "x-go-name": "ReviewID"
  17471. },
  17472. "pull_request_url": {
  17473. "type": "string",
  17474. "x-go-name": "HTMLPullURL"
  17475. },
  17476. "resolver": {
  17477. "$ref": "#/definitions/User"
  17478. },
  17479. "updated_at": {
  17480. "type": "string",
  17481. "format": "date-time",
  17482. "x-go-name": "Updated"
  17483. },
  17484. "user": {
  17485. "$ref": "#/definitions/User"
  17486. }
  17487. },
  17488. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17489. },
  17490. "PullReviewRequestOptions": {
  17491. "description": "PullReviewRequestOptions are options to add or remove pull review requests",
  17492. "type": "object",
  17493. "properties": {
  17494. "reviewers": {
  17495. "type": "array",
  17496. "items": {
  17497. "type": "string"
  17498. },
  17499. "x-go-name": "Reviewers"
  17500. },
  17501. "team_reviewers": {
  17502. "type": "array",
  17503. "items": {
  17504. "type": "string"
  17505. },
  17506. "x-go-name": "TeamReviewers"
  17507. }
  17508. },
  17509. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17510. },
  17511. "Reaction": {
  17512. "description": "Reaction contain one reaction",
  17513. "type": "object",
  17514. "properties": {
  17515. "content": {
  17516. "type": "string",
  17517. "x-go-name": "Reaction"
  17518. },
  17519. "created_at": {
  17520. "type": "string",
  17521. "format": "date-time",
  17522. "x-go-name": "Created"
  17523. },
  17524. "user": {
  17525. "$ref": "#/definitions/User"
  17526. }
  17527. },
  17528. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17529. },
  17530. "Reference": {
  17531. "type": "object",
  17532. "title": "Reference represents a Git reference.",
  17533. "properties": {
  17534. "object": {
  17535. "$ref": "#/definitions/GitObject"
  17536. },
  17537. "ref": {
  17538. "type": "string",
  17539. "x-go-name": "Ref"
  17540. },
  17541. "url": {
  17542. "type": "string",
  17543. "x-go-name": "URL"
  17544. }
  17545. },
  17546. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17547. },
  17548. "Release": {
  17549. "description": "Release represents a repository release",
  17550. "type": "object",
  17551. "properties": {
  17552. "assets": {
  17553. "type": "array",
  17554. "items": {
  17555. "$ref": "#/definitions/Attachment"
  17556. },
  17557. "x-go-name": "Attachments"
  17558. },
  17559. "author": {
  17560. "$ref": "#/definitions/User"
  17561. },
  17562. "body": {
  17563. "type": "string",
  17564. "x-go-name": "Note"
  17565. },
  17566. "created_at": {
  17567. "type": "string",
  17568. "format": "date-time",
  17569. "x-go-name": "CreatedAt"
  17570. },
  17571. "draft": {
  17572. "type": "boolean",
  17573. "x-go-name": "IsDraft"
  17574. },
  17575. "html_url": {
  17576. "type": "string",
  17577. "x-go-name": "HTMLURL"
  17578. },
  17579. "id": {
  17580. "type": "integer",
  17581. "format": "int64",
  17582. "x-go-name": "ID"
  17583. },
  17584. "name": {
  17585. "type": "string",
  17586. "x-go-name": "Title"
  17587. },
  17588. "prerelease": {
  17589. "type": "boolean",
  17590. "x-go-name": "IsPrerelease"
  17591. },
  17592. "published_at": {
  17593. "type": "string",
  17594. "format": "date-time",
  17595. "x-go-name": "PublishedAt"
  17596. },
  17597. "tag_name": {
  17598. "type": "string",
  17599. "x-go-name": "TagName"
  17600. },
  17601. "tarball_url": {
  17602. "type": "string",
  17603. "x-go-name": "TarURL"
  17604. },
  17605. "target_commitish": {
  17606. "type": "string",
  17607. "x-go-name": "Target"
  17608. },
  17609. "url": {
  17610. "type": "string",
  17611. "x-go-name": "URL"
  17612. },
  17613. "zipball_url": {
  17614. "type": "string",
  17615. "x-go-name": "ZipURL"
  17616. }
  17617. },
  17618. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17619. },
  17620. "RepoCollaboratorPermission": {
  17621. "description": "RepoCollaboratorPermission to get repository permission for a collaborator",
  17622. "type": "object",
  17623. "properties": {
  17624. "permission": {
  17625. "type": "string",
  17626. "x-go-name": "Permission"
  17627. },
  17628. "role_name": {
  17629. "type": "string",
  17630. "x-go-name": "RoleName"
  17631. },
  17632. "user": {
  17633. "$ref": "#/definitions/User"
  17634. }
  17635. },
  17636. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17637. },
  17638. "RepoCommit": {
  17639. "type": "object",
  17640. "title": "RepoCommit contains information of a commit in the context of a repository.",
  17641. "properties": {
  17642. "author": {
  17643. "$ref": "#/definitions/CommitUser"
  17644. },
  17645. "committer": {
  17646. "$ref": "#/definitions/CommitUser"
  17647. },
  17648. "message": {
  17649. "type": "string",
  17650. "x-go-name": "Message"
  17651. },
  17652. "tree": {
  17653. "$ref": "#/definitions/CommitMeta"
  17654. },
  17655. "url": {
  17656. "type": "string",
  17657. "x-go-name": "URL"
  17658. },
  17659. "verification": {
  17660. "$ref": "#/definitions/PayloadCommitVerification"
  17661. }
  17662. },
  17663. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17664. },
  17665. "RepoTopicOptions": {
  17666. "description": "RepoTopicOptions a collection of repo topic names",
  17667. "type": "object",
  17668. "properties": {
  17669. "topics": {
  17670. "description": "list of topic names",
  17671. "type": "array",
  17672. "items": {
  17673. "type": "string"
  17674. },
  17675. "x-go-name": "Topics"
  17676. }
  17677. },
  17678. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17679. },
  17680. "RepoTransfer": {
  17681. "description": "RepoTransfer represents a pending repo transfer",
  17682. "type": "object",
  17683. "properties": {
  17684. "doer": {
  17685. "$ref": "#/definitions/User"
  17686. },
  17687. "recipient": {
  17688. "$ref": "#/definitions/User"
  17689. },
  17690. "teams": {
  17691. "type": "array",
  17692. "items": {
  17693. "$ref": "#/definitions/Team"
  17694. },
  17695. "x-go-name": "Teams"
  17696. }
  17697. },
  17698. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17699. },
  17700. "Repository": {
  17701. "description": "Repository represents a repository",
  17702. "type": "object",
  17703. "properties": {
  17704. "allow_merge_commits": {
  17705. "type": "boolean",
  17706. "x-go-name": "AllowMerge"
  17707. },
  17708. "allow_rebase": {
  17709. "type": "boolean",
  17710. "x-go-name": "AllowRebase"
  17711. },
  17712. "allow_rebase_explicit": {
  17713. "type": "boolean",
  17714. "x-go-name": "AllowRebaseMerge"
  17715. },
  17716. "allow_squash_merge": {
  17717. "type": "boolean",
  17718. "x-go-name": "AllowSquash"
  17719. },
  17720. "archived": {
  17721. "type": "boolean",
  17722. "x-go-name": "Archived"
  17723. },
  17724. "avatar_url": {
  17725. "type": "string",
  17726. "x-go-name": "AvatarURL"
  17727. },
  17728. "clone_url": {
  17729. "type": "string",
  17730. "x-go-name": "CloneURL"
  17731. },
  17732. "created_at": {
  17733. "type": "string",
  17734. "format": "date-time",
  17735. "x-go-name": "Created"
  17736. },
  17737. "default_branch": {
  17738. "type": "string",
  17739. "x-go-name": "DefaultBranch"
  17740. },
  17741. "default_merge_style": {
  17742. "type": "string",
  17743. "x-go-name": "DefaultMergeStyle"
  17744. },
  17745. "description": {
  17746. "type": "string",
  17747. "x-go-name": "Description"
  17748. },
  17749. "empty": {
  17750. "type": "boolean",
  17751. "x-go-name": "Empty"
  17752. },
  17753. "external_tracker": {
  17754. "$ref": "#/definitions/ExternalTracker"
  17755. },
  17756. "external_wiki": {
  17757. "$ref": "#/definitions/ExternalWiki"
  17758. },
  17759. "fork": {
  17760. "type": "boolean",
  17761. "x-go-name": "Fork"
  17762. },
  17763. "forks_count": {
  17764. "type": "integer",
  17765. "format": "int64",
  17766. "x-go-name": "Forks"
  17767. },
  17768. "full_name": {
  17769. "type": "string",
  17770. "x-go-name": "FullName"
  17771. },
  17772. "has_issues": {
  17773. "type": "boolean",
  17774. "x-go-name": "HasIssues"
  17775. },
  17776. "has_projects": {
  17777. "type": "boolean",
  17778. "x-go-name": "HasProjects"
  17779. },
  17780. "has_pull_requests": {
  17781. "type": "boolean",
  17782. "x-go-name": "HasPullRequests"
  17783. },
  17784. "has_wiki": {
  17785. "type": "boolean",
  17786. "x-go-name": "HasWiki"
  17787. },
  17788. "html_url": {
  17789. "type": "string",
  17790. "x-go-name": "HTMLURL"
  17791. },
  17792. "id": {
  17793. "type": "integer",
  17794. "format": "int64",
  17795. "x-go-name": "ID"
  17796. },
  17797. "ignore_whitespace_conflicts": {
  17798. "type": "boolean",
  17799. "x-go-name": "IgnoreWhitespaceConflicts"
  17800. },
  17801. "internal": {
  17802. "type": "boolean",
  17803. "x-go-name": "Internal"
  17804. },
  17805. "internal_tracker": {
  17806. "$ref": "#/definitions/InternalTracker"
  17807. },
  17808. "language": {
  17809. "type": "string",
  17810. "x-go-name": "Language"
  17811. },
  17812. "languages_url": {
  17813. "type": "string",
  17814. "x-go-name": "LanguagesURL"
  17815. },
  17816. "mirror": {
  17817. "type": "boolean",
  17818. "x-go-name": "Mirror"
  17819. },
  17820. "mirror_interval": {
  17821. "type": "string",
  17822. "x-go-name": "MirrorInterval"
  17823. },
  17824. "mirror_updated": {
  17825. "type": "string",
  17826. "format": "date-time",
  17827. "x-go-name": "MirrorUpdated"
  17828. },
  17829. "name": {
  17830. "type": "string",
  17831. "x-go-name": "Name"
  17832. },
  17833. "open_issues_count": {
  17834. "type": "integer",
  17835. "format": "int64",
  17836. "x-go-name": "OpenIssues"
  17837. },
  17838. "open_pr_counter": {
  17839. "type": "integer",
  17840. "format": "int64",
  17841. "x-go-name": "OpenPulls"
  17842. },
  17843. "original_url": {
  17844. "type": "string",
  17845. "x-go-name": "OriginalURL"
  17846. },
  17847. "owner": {
  17848. "$ref": "#/definitions/User"
  17849. },
  17850. "parent": {
  17851. "$ref": "#/definitions/Repository"
  17852. },
  17853. "permissions": {
  17854. "$ref": "#/definitions/Permission"
  17855. },
  17856. "private": {
  17857. "type": "boolean",
  17858. "x-go-name": "Private"
  17859. },
  17860. "release_counter": {
  17861. "type": "integer",
  17862. "format": "int64",
  17863. "x-go-name": "Releases"
  17864. },
  17865. "repo_transfer": {
  17866. "$ref": "#/definitions/RepoTransfer"
  17867. },
  17868. "size": {
  17869. "type": "integer",
  17870. "format": "int64",
  17871. "x-go-name": "Size"
  17872. },
  17873. "ssh_url": {
  17874. "type": "string",
  17875. "x-go-name": "SSHURL"
  17876. },
  17877. "stars_count": {
  17878. "type": "integer",
  17879. "format": "int64",
  17880. "x-go-name": "Stars"
  17881. },
  17882. "template": {
  17883. "type": "boolean",
  17884. "x-go-name": "Template"
  17885. },
  17886. "updated_at": {
  17887. "type": "string",
  17888. "format": "date-time",
  17889. "x-go-name": "Updated"
  17890. },
  17891. "watchers_count": {
  17892. "type": "integer",
  17893. "format": "int64",
  17894. "x-go-name": "Watchers"
  17895. },
  17896. "website": {
  17897. "type": "string",
  17898. "x-go-name": "Website"
  17899. }
  17900. },
  17901. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17902. },
  17903. "RepositoryMeta": {
  17904. "description": "RepositoryMeta basic repository information",
  17905. "type": "object",
  17906. "properties": {
  17907. "full_name": {
  17908. "type": "string",
  17909. "x-go-name": "FullName"
  17910. },
  17911. "id": {
  17912. "type": "integer",
  17913. "format": "int64",
  17914. "x-go-name": "ID"
  17915. },
  17916. "name": {
  17917. "type": "string",
  17918. "x-go-name": "Name"
  17919. },
  17920. "owner": {
  17921. "type": "string",
  17922. "x-go-name": "Owner"
  17923. }
  17924. },
  17925. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17926. },
  17927. "ReviewStateType": {
  17928. "description": "ReviewStateType review state type",
  17929. "type": "string",
  17930. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17931. },
  17932. "SearchResults": {
  17933. "description": "SearchResults results of a successful search",
  17934. "type": "object",
  17935. "properties": {
  17936. "data": {
  17937. "type": "array",
  17938. "items": {
  17939. "$ref": "#/definitions/Repository"
  17940. },
  17941. "x-go-name": "Data"
  17942. },
  17943. "ok": {
  17944. "type": "boolean",
  17945. "x-go-name": "OK"
  17946. }
  17947. },
  17948. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17949. },
  17950. "ServerVersion": {
  17951. "description": "ServerVersion wraps the version of the server",
  17952. "type": "object",
  17953. "properties": {
  17954. "version": {
  17955. "type": "string",
  17956. "x-go-name": "Version"
  17957. }
  17958. },
  17959. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17960. },
  17961. "StateType": {
  17962. "description": "StateType issue state type",
  17963. "type": "string",
  17964. "x-go-package": "code.gitea.io/gitea/modules/structs"
  17965. },
  17966. "StopWatch": {
  17967. "description": "StopWatch represent a running stopwatch",
  17968. "type": "object",
  17969. "properties": {
  17970. "created": {
  17971. "type": "string",
  17972. "format": "date-time",
  17973. "x-go-name": "Created"
  17974. },
  17975. "duration": {
  17976. "type": "string",
  17977. "x-go-name": "Duration"
  17978. },
  17979. "issue_index": {
  17980. "type": "integer",
  17981. "format": "int64",
  17982. "x-go-name": "IssueIndex"
  17983. },
  17984. "issue_title": {
  17985. "type": "string",
  17986. "x-go-name": "IssueTitle"
  17987. },
  17988. "repo_name": {
  17989. "type": "string",
  17990. "x-go-name": "RepoName"
  17991. },
  17992. "repo_owner_name": {
  17993. "type": "string",
  17994. "x-go-name": "RepoOwnerName"
  17995. },
  17996. "seconds": {
  17997. "type": "integer",
  17998. "format": "int64",
  17999. "x-go-name": "Seconds"
  18000. }
  18001. },
  18002. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18003. },
  18004. "SubmitPullReviewOptions": {
  18005. "description": "SubmitPullReviewOptions are options to submit a pending pull review",
  18006. "type": "object",
  18007. "properties": {
  18008. "body": {
  18009. "type": "string",
  18010. "x-go-name": "Body"
  18011. },
  18012. "event": {
  18013. "$ref": "#/definitions/ReviewStateType"
  18014. }
  18015. },
  18016. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18017. },
  18018. "Tag": {
  18019. "description": "Tag represents a repository tag",
  18020. "type": "object",
  18021. "properties": {
  18022. "commit": {
  18023. "$ref": "#/definitions/CommitMeta"
  18024. },
  18025. "id": {
  18026. "type": "string",
  18027. "x-go-name": "ID"
  18028. },
  18029. "message": {
  18030. "type": "string",
  18031. "x-go-name": "Message"
  18032. },
  18033. "name": {
  18034. "type": "string",
  18035. "x-go-name": "Name"
  18036. },
  18037. "tarball_url": {
  18038. "type": "string",
  18039. "x-go-name": "TarballURL"
  18040. },
  18041. "zipball_url": {
  18042. "type": "string",
  18043. "x-go-name": "ZipballURL"
  18044. }
  18045. },
  18046. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18047. },
  18048. "Team": {
  18049. "description": "Team represents a team in an organization",
  18050. "type": "object",
  18051. "properties": {
  18052. "can_create_org_repo": {
  18053. "type": "boolean",
  18054. "x-go-name": "CanCreateOrgRepo"
  18055. },
  18056. "description": {
  18057. "type": "string",
  18058. "x-go-name": "Description"
  18059. },
  18060. "id": {
  18061. "type": "integer",
  18062. "format": "int64",
  18063. "x-go-name": "ID"
  18064. },
  18065. "includes_all_repositories": {
  18066. "type": "boolean",
  18067. "x-go-name": "IncludesAllRepositories"
  18068. },
  18069. "name": {
  18070. "type": "string",
  18071. "x-go-name": "Name"
  18072. },
  18073. "organization": {
  18074. "$ref": "#/definitions/Organization"
  18075. },
  18076. "permission": {
  18077. "type": "string",
  18078. "enum": [
  18079. "none",
  18080. "read",
  18081. "write",
  18082. "admin",
  18083. "owner"
  18084. ],
  18085. "x-go-name": "Permission"
  18086. },
  18087. "units": {
  18088. "type": "array",
  18089. "items": {
  18090. "type": "string"
  18091. },
  18092. "x-go-name": "Units",
  18093. "example": [
  18094. "repo.code",
  18095. "repo.issues",
  18096. "repo.ext_issues",
  18097. "repo.wiki",
  18098. "repo.pulls",
  18099. "repo.releases",
  18100. "repo.projects",
  18101. "repo.ext_wiki"
  18102. ]
  18103. },
  18104. "units_map": {
  18105. "type": "object",
  18106. "additionalProperties": {
  18107. "type": "string"
  18108. },
  18109. "x-go-name": "UnitsMap",
  18110. "example": "{\"repo.code\":\"read\",\"repo.issues\":\"write\",\"repo.ext_issues\":\"none\",\"repo.wiki\":\"admin\",\"repo.pulls\":\"owner\",\"repo.releases\":\"none\",\"repo.projects\":\"none\",\"repo.ext_wiki\":\"none\"]"
  18111. }
  18112. },
  18113. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18114. },
  18115. "TimeStamp": {
  18116. "description": "TimeStamp defines a timestamp",
  18117. "type": "integer",
  18118. "format": "int64",
  18119. "x-go-package": "code.gitea.io/gitea/modules/timeutil"
  18120. },
  18121. "TimelineComment": {
  18122. "description": "TimelineComment represents a timeline comment (comment of any type) on a commit or issue",
  18123. "type": "object",
  18124. "properties": {
  18125. "assignee": {
  18126. "$ref": "#/definitions/User"
  18127. },
  18128. "assignee_team": {
  18129. "$ref": "#/definitions/Team"
  18130. },
  18131. "body": {
  18132. "type": "string",
  18133. "x-go-name": "Body"
  18134. },
  18135. "created_at": {
  18136. "type": "string",
  18137. "format": "date-time",
  18138. "x-go-name": "Created"
  18139. },
  18140. "dependent_issue": {
  18141. "$ref": "#/definitions/Issue"
  18142. },
  18143. "html_url": {
  18144. "type": "string",
  18145. "x-go-name": "HTMLURL"
  18146. },
  18147. "id": {
  18148. "type": "integer",
  18149. "format": "int64",
  18150. "x-go-name": "ID"
  18151. },
  18152. "issue_url": {
  18153. "type": "string",
  18154. "x-go-name": "IssueURL"
  18155. },
  18156. "label": {
  18157. "$ref": "#/definitions/Label"
  18158. },
  18159. "milestone": {
  18160. "$ref": "#/definitions/Milestone"
  18161. },
  18162. "new_ref": {
  18163. "type": "string",
  18164. "x-go-name": "NewRef"
  18165. },
  18166. "new_title": {
  18167. "type": "string",
  18168. "x-go-name": "NewTitle"
  18169. },
  18170. "old_milestone": {
  18171. "$ref": "#/definitions/Milestone"
  18172. },
  18173. "old_project_id": {
  18174. "type": "integer",
  18175. "format": "int64",
  18176. "x-go-name": "OldProjectID"
  18177. },
  18178. "old_ref": {
  18179. "type": "string",
  18180. "x-go-name": "OldRef"
  18181. },
  18182. "old_title": {
  18183. "type": "string",
  18184. "x-go-name": "OldTitle"
  18185. },
  18186. "project_id": {
  18187. "type": "integer",
  18188. "format": "int64",
  18189. "x-go-name": "ProjectID"
  18190. },
  18191. "pull_request_url": {
  18192. "type": "string",
  18193. "x-go-name": "PRURL"
  18194. },
  18195. "ref_action": {
  18196. "type": "string",
  18197. "x-go-name": "RefAction"
  18198. },
  18199. "ref_comment": {
  18200. "$ref": "#/definitions/Comment"
  18201. },
  18202. "ref_commit_sha": {
  18203. "description": "commit SHA where issue/PR was referenced",
  18204. "type": "string",
  18205. "x-go-name": "RefCommitSHA"
  18206. },
  18207. "ref_issue": {
  18208. "$ref": "#/definitions/Issue"
  18209. },
  18210. "removed_assignee": {
  18211. "description": "whether the assignees were removed or added",
  18212. "type": "boolean",
  18213. "x-go-name": "RemovedAssignee"
  18214. },
  18215. "resolve_doer": {
  18216. "$ref": "#/definitions/User"
  18217. },
  18218. "review_id": {
  18219. "type": "integer",
  18220. "format": "int64",
  18221. "x-go-name": "ReviewID"
  18222. },
  18223. "tracked_time": {
  18224. "$ref": "#/definitions/TrackedTime"
  18225. },
  18226. "type": {
  18227. "type": "string",
  18228. "x-go-name": "Type"
  18229. },
  18230. "updated_at": {
  18231. "type": "string",
  18232. "format": "date-time",
  18233. "x-go-name": "Updated"
  18234. },
  18235. "user": {
  18236. "$ref": "#/definitions/User"
  18237. }
  18238. },
  18239. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18240. },
  18241. "TopicName": {
  18242. "description": "TopicName a list of repo topic names",
  18243. "type": "object",
  18244. "properties": {
  18245. "topics": {
  18246. "type": "array",
  18247. "items": {
  18248. "type": "string"
  18249. },
  18250. "x-go-name": "TopicNames"
  18251. }
  18252. },
  18253. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18254. },
  18255. "TopicResponse": {
  18256. "description": "TopicResponse for returning topics",
  18257. "type": "object",
  18258. "properties": {
  18259. "created": {
  18260. "type": "string",
  18261. "format": "date-time",
  18262. "x-go-name": "Created"
  18263. },
  18264. "id": {
  18265. "type": "integer",
  18266. "format": "int64",
  18267. "x-go-name": "ID"
  18268. },
  18269. "repo_count": {
  18270. "type": "integer",
  18271. "format": "int64",
  18272. "x-go-name": "RepoCount"
  18273. },
  18274. "topic_name": {
  18275. "type": "string",
  18276. "x-go-name": "Name"
  18277. },
  18278. "updated": {
  18279. "type": "string",
  18280. "format": "date-time",
  18281. "x-go-name": "Updated"
  18282. }
  18283. },
  18284. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18285. },
  18286. "TrackedTime": {
  18287. "description": "TrackedTime worked time for an issue / pr",
  18288. "type": "object",
  18289. "properties": {
  18290. "created": {
  18291. "type": "string",
  18292. "format": "date-time",
  18293. "x-go-name": "Created"
  18294. },
  18295. "id": {
  18296. "type": "integer",
  18297. "format": "int64",
  18298. "x-go-name": "ID"
  18299. },
  18300. "issue": {
  18301. "$ref": "#/definitions/Issue"
  18302. },
  18303. "issue_id": {
  18304. "description": "deprecated (only for backwards compatibility)",
  18305. "type": "integer",
  18306. "format": "int64",
  18307. "x-go-name": "IssueID"
  18308. },
  18309. "time": {
  18310. "description": "Time in seconds",
  18311. "type": "integer",
  18312. "format": "int64",
  18313. "x-go-name": "Time"
  18314. },
  18315. "user_id": {
  18316. "description": "deprecated (only for backwards compatibility)",
  18317. "type": "integer",
  18318. "format": "int64",
  18319. "x-go-name": "UserID"
  18320. },
  18321. "user_name": {
  18322. "type": "string",
  18323. "x-go-name": "UserName"
  18324. }
  18325. },
  18326. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18327. },
  18328. "TransferRepoOption": {
  18329. "description": "TransferRepoOption options when transfer a repository's ownership",
  18330. "type": "object",
  18331. "required": [
  18332. "new_owner"
  18333. ],
  18334. "properties": {
  18335. "new_owner": {
  18336. "type": "string",
  18337. "x-go-name": "NewOwner"
  18338. },
  18339. "team_ids": {
  18340. "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.",
  18341. "type": "array",
  18342. "items": {
  18343. "type": "integer",
  18344. "format": "int64"
  18345. },
  18346. "x-go-name": "TeamIDs"
  18347. }
  18348. },
  18349. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18350. },
  18351. "UpdateFileOptions": {
  18352. "description": "UpdateFileOptions options for updating files\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)",
  18353. "type": "object",
  18354. "required": [
  18355. "sha",
  18356. "content"
  18357. ],
  18358. "properties": {
  18359. "author": {
  18360. "$ref": "#/definitions/Identity"
  18361. },
  18362. "branch": {
  18363. "description": "branch (optional) to base this file from. if not given, the default branch is used",
  18364. "type": "string",
  18365. "x-go-name": "BranchName"
  18366. },
  18367. "committer": {
  18368. "$ref": "#/definitions/Identity"
  18369. },
  18370. "content": {
  18371. "description": "content must be base64 encoded",
  18372. "type": "string",
  18373. "x-go-name": "Content"
  18374. },
  18375. "dates": {
  18376. "$ref": "#/definitions/CommitDateOptions"
  18377. },
  18378. "from_path": {
  18379. "description": "from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL",
  18380. "type": "string",
  18381. "x-go-name": "FromPath"
  18382. },
  18383. "message": {
  18384. "description": "message (optional) for the commit of this file. if not supplied, a default message will be used",
  18385. "type": "string",
  18386. "x-go-name": "Message"
  18387. },
  18388. "new_branch": {
  18389. "description": "new_branch (optional) will make a new branch from `branch` before creating the file",
  18390. "type": "string",
  18391. "x-go-name": "NewBranchName"
  18392. },
  18393. "sha": {
  18394. "description": "sha is the SHA for the file that already exists",
  18395. "type": "string",
  18396. "x-go-name": "SHA"
  18397. },
  18398. "signoff": {
  18399. "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.",
  18400. "type": "boolean",
  18401. "x-go-name": "Signoff"
  18402. }
  18403. },
  18404. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18405. },
  18406. "User": {
  18407. "description": "User represents a user",
  18408. "type": "object",
  18409. "properties": {
  18410. "active": {
  18411. "description": "Is user active",
  18412. "type": "boolean",
  18413. "x-go-name": "IsActive"
  18414. },
  18415. "avatar_url": {
  18416. "description": "URL to the user's avatar",
  18417. "type": "string",
  18418. "x-go-name": "AvatarURL"
  18419. },
  18420. "created": {
  18421. "type": "string",
  18422. "format": "date-time",
  18423. "x-go-name": "Created"
  18424. },
  18425. "description": {
  18426. "description": "the user's description",
  18427. "type": "string",
  18428. "x-go-name": "Description"
  18429. },
  18430. "email": {
  18431. "type": "string",
  18432. "format": "email",
  18433. "x-go-name": "Email"
  18434. },
  18435. "followers_count": {
  18436. "description": "user counts",
  18437. "type": "integer",
  18438. "format": "int64",
  18439. "x-go-name": "Followers"
  18440. },
  18441. "following_count": {
  18442. "type": "integer",
  18443. "format": "int64",
  18444. "x-go-name": "Following"
  18445. },
  18446. "full_name": {
  18447. "description": "the user's full name",
  18448. "type": "string",
  18449. "x-go-name": "FullName"
  18450. },
  18451. "id": {
  18452. "description": "the user's id",
  18453. "type": "integer",
  18454. "format": "int64",
  18455. "x-go-name": "ID"
  18456. },
  18457. "is_admin": {
  18458. "description": "Is the user an administrator",
  18459. "type": "boolean",
  18460. "x-go-name": "IsAdmin"
  18461. },
  18462. "language": {
  18463. "description": "User locale",
  18464. "type": "string",
  18465. "x-go-name": "Language"
  18466. },
  18467. "last_login": {
  18468. "type": "string",
  18469. "format": "date-time",
  18470. "x-go-name": "LastLogin"
  18471. },
  18472. "location": {
  18473. "description": "the user's location",
  18474. "type": "string",
  18475. "x-go-name": "Location"
  18476. },
  18477. "login": {
  18478. "description": "the user's username",
  18479. "type": "string",
  18480. "x-go-name": "UserName"
  18481. },
  18482. "prohibit_login": {
  18483. "description": "Is user login prohibited",
  18484. "type": "boolean",
  18485. "x-go-name": "ProhibitLogin"
  18486. },
  18487. "restricted": {
  18488. "description": "Is user restricted",
  18489. "type": "boolean",
  18490. "x-go-name": "Restricted"
  18491. },
  18492. "starred_repos_count": {
  18493. "type": "integer",
  18494. "format": "int64",
  18495. "x-go-name": "StarredRepos"
  18496. },
  18497. "visibility": {
  18498. "description": "User visibility level option: public, limited, private",
  18499. "type": "string",
  18500. "x-go-name": "Visibility"
  18501. },
  18502. "website": {
  18503. "description": "the user's website",
  18504. "type": "string",
  18505. "x-go-name": "Website"
  18506. }
  18507. },
  18508. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18509. },
  18510. "UserHeatmapData": {
  18511. "description": "UserHeatmapData represents the data needed to create a heatmap",
  18512. "type": "object",
  18513. "properties": {
  18514. "contributions": {
  18515. "type": "integer",
  18516. "format": "int64",
  18517. "x-go-name": "Contributions"
  18518. },
  18519. "timestamp": {
  18520. "$ref": "#/definitions/TimeStamp"
  18521. }
  18522. },
  18523. "x-go-package": "code.gitea.io/gitea/models"
  18524. },
  18525. "UserSettings": {
  18526. "description": "UserSettings represents user settings",
  18527. "type": "object",
  18528. "properties": {
  18529. "description": {
  18530. "type": "string",
  18531. "x-go-name": "Description"
  18532. },
  18533. "diff_view_style": {
  18534. "type": "string",
  18535. "x-go-name": "DiffViewStyle"
  18536. },
  18537. "full_name": {
  18538. "type": "string",
  18539. "x-go-name": "FullName"
  18540. },
  18541. "hide_activity": {
  18542. "type": "boolean",
  18543. "x-go-name": "HideActivity"
  18544. },
  18545. "hide_email": {
  18546. "description": "Privacy",
  18547. "type": "boolean",
  18548. "x-go-name": "HideEmail"
  18549. },
  18550. "language": {
  18551. "type": "string",
  18552. "x-go-name": "Language"
  18553. },
  18554. "location": {
  18555. "type": "string",
  18556. "x-go-name": "Location"
  18557. },
  18558. "theme": {
  18559. "type": "string",
  18560. "x-go-name": "Theme"
  18561. },
  18562. "website": {
  18563. "type": "string",
  18564. "x-go-name": "Website"
  18565. }
  18566. },
  18567. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18568. },
  18569. "UserSettingsOptions": {
  18570. "description": "UserSettingsOptions represents options to change user settings",
  18571. "type": "object",
  18572. "properties": {
  18573. "description": {
  18574. "type": "string",
  18575. "x-go-name": "Description"
  18576. },
  18577. "diff_view_style": {
  18578. "type": "string",
  18579. "x-go-name": "DiffViewStyle"
  18580. },
  18581. "full_name": {
  18582. "type": "string",
  18583. "x-go-name": "FullName"
  18584. },
  18585. "hide_activity": {
  18586. "type": "boolean",
  18587. "x-go-name": "HideActivity"
  18588. },
  18589. "hide_email": {
  18590. "description": "Privacy",
  18591. "type": "boolean",
  18592. "x-go-name": "HideEmail"
  18593. },
  18594. "language": {
  18595. "type": "string",
  18596. "x-go-name": "Language"
  18597. },
  18598. "location": {
  18599. "type": "string",
  18600. "x-go-name": "Location"
  18601. },
  18602. "theme": {
  18603. "type": "string",
  18604. "x-go-name": "Theme"
  18605. },
  18606. "website": {
  18607. "type": "string",
  18608. "x-go-name": "Website"
  18609. }
  18610. },
  18611. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18612. },
  18613. "WatchInfo": {
  18614. "description": "WatchInfo represents an API watch status of one repository",
  18615. "type": "object",
  18616. "properties": {
  18617. "created_at": {
  18618. "type": "string",
  18619. "format": "date-time",
  18620. "x-go-name": "CreatedAt"
  18621. },
  18622. "ignored": {
  18623. "type": "boolean",
  18624. "x-go-name": "Ignored"
  18625. },
  18626. "reason": {
  18627. "type": "object",
  18628. "x-go-name": "Reason"
  18629. },
  18630. "repository_url": {
  18631. "type": "string",
  18632. "x-go-name": "RepositoryURL"
  18633. },
  18634. "subscribed": {
  18635. "type": "boolean",
  18636. "x-go-name": "Subscribed"
  18637. },
  18638. "url": {
  18639. "type": "string",
  18640. "x-go-name": "URL"
  18641. }
  18642. },
  18643. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18644. },
  18645. "WikiCommit": {
  18646. "description": "WikiCommit page commit/revision",
  18647. "type": "object",
  18648. "properties": {
  18649. "author": {
  18650. "$ref": "#/definitions/CommitUser"
  18651. },
  18652. "commiter": {
  18653. "$ref": "#/definitions/CommitUser"
  18654. },
  18655. "message": {
  18656. "type": "string",
  18657. "x-go-name": "Message"
  18658. },
  18659. "sha": {
  18660. "type": "string",
  18661. "x-go-name": "ID"
  18662. }
  18663. },
  18664. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18665. },
  18666. "WikiCommitList": {
  18667. "description": "WikiCommitList commit/revision list",
  18668. "type": "object",
  18669. "properties": {
  18670. "commits": {
  18671. "type": "array",
  18672. "items": {
  18673. "$ref": "#/definitions/WikiCommit"
  18674. },
  18675. "x-go-name": "WikiCommits"
  18676. },
  18677. "count": {
  18678. "type": "integer",
  18679. "format": "int64",
  18680. "x-go-name": "Count"
  18681. }
  18682. },
  18683. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18684. },
  18685. "WikiPage": {
  18686. "description": "WikiPage a wiki page",
  18687. "type": "object",
  18688. "properties": {
  18689. "commit_count": {
  18690. "type": "integer",
  18691. "format": "int64",
  18692. "x-go-name": "CommitCount"
  18693. },
  18694. "content_base64": {
  18695. "description": "Page content, base64 encoded",
  18696. "type": "string",
  18697. "x-go-name": "ContentBase64"
  18698. },
  18699. "footer": {
  18700. "type": "string",
  18701. "x-go-name": "Footer"
  18702. },
  18703. "html_url": {
  18704. "type": "string",
  18705. "x-go-name": "HTMLURL"
  18706. },
  18707. "last_commit": {
  18708. "$ref": "#/definitions/WikiCommit"
  18709. },
  18710. "sidebar": {
  18711. "type": "string",
  18712. "x-go-name": "Sidebar"
  18713. },
  18714. "sub_url": {
  18715. "type": "string",
  18716. "x-go-name": "SubURL"
  18717. },
  18718. "title": {
  18719. "type": "string",
  18720. "x-go-name": "Title"
  18721. }
  18722. },
  18723. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18724. },
  18725. "WikiPageMetaData": {
  18726. "description": "WikiPageMetaData wiki page meta information",
  18727. "type": "object",
  18728. "properties": {
  18729. "html_url": {
  18730. "type": "string",
  18731. "x-go-name": "HTMLURL"
  18732. },
  18733. "last_commit": {
  18734. "$ref": "#/definitions/WikiCommit"
  18735. },
  18736. "sub_url": {
  18737. "type": "string",
  18738. "x-go-name": "SubURL"
  18739. },
  18740. "title": {
  18741. "type": "string",
  18742. "x-go-name": "Title"
  18743. }
  18744. },
  18745. "x-go-package": "code.gitea.io/gitea/modules/structs"
  18746. }
  18747. },
  18748. "responses": {
  18749. "AccessToken": {
  18750. "description": "AccessToken represents an API access token.",
  18751. "schema": {
  18752. "$ref": "#/definitions/AccessToken"
  18753. }
  18754. },
  18755. "AccessTokenList": {
  18756. "description": "AccessTokenList represents a list of API access token.",
  18757. "schema": {
  18758. "type": "array",
  18759. "items": {
  18760. "$ref": "#/definitions/AccessToken"
  18761. }
  18762. }
  18763. },
  18764. "ActivityPub": {
  18765. "description": "ActivityPub",
  18766. "schema": {
  18767. "$ref": "#/definitions/ActivityPub"
  18768. }
  18769. },
  18770. "AnnotatedTag": {
  18771. "description": "AnnotatedTag",
  18772. "schema": {
  18773. "$ref": "#/definitions/AnnotatedTag"
  18774. }
  18775. },
  18776. "Attachment": {
  18777. "description": "Attachment",
  18778. "schema": {
  18779. "$ref": "#/definitions/Attachment"
  18780. }
  18781. },
  18782. "AttachmentList": {
  18783. "description": "AttachmentList",
  18784. "schema": {
  18785. "type": "array",
  18786. "items": {
  18787. "$ref": "#/definitions/Attachment"
  18788. }
  18789. }
  18790. },
  18791. "Branch": {
  18792. "description": "Branch",
  18793. "schema": {
  18794. "$ref": "#/definitions/Branch"
  18795. }
  18796. },
  18797. "BranchList": {
  18798. "description": "BranchList",
  18799. "schema": {
  18800. "type": "array",
  18801. "items": {
  18802. "$ref": "#/definitions/Branch"
  18803. }
  18804. }
  18805. },
  18806. "BranchProtection": {
  18807. "description": "BranchProtection",
  18808. "schema": {
  18809. "$ref": "#/definitions/BranchProtection"
  18810. }
  18811. },
  18812. "BranchProtectionList": {
  18813. "description": "BranchProtectionList",
  18814. "schema": {
  18815. "type": "array",
  18816. "items": {
  18817. "$ref": "#/definitions/BranchProtection"
  18818. }
  18819. }
  18820. },
  18821. "CombinedStatus": {
  18822. "description": "CombinedStatus",
  18823. "schema": {
  18824. "$ref": "#/definitions/CombinedStatus"
  18825. }
  18826. },
  18827. "Comment": {
  18828. "description": "Comment",
  18829. "schema": {
  18830. "$ref": "#/definitions/Comment"
  18831. }
  18832. },
  18833. "CommentList": {
  18834. "description": "CommentList",
  18835. "schema": {
  18836. "type": "array",
  18837. "items": {
  18838. "$ref": "#/definitions/Comment"
  18839. }
  18840. }
  18841. },
  18842. "Commit": {
  18843. "description": "Commit",
  18844. "schema": {
  18845. "$ref": "#/definitions/Commit"
  18846. }
  18847. },
  18848. "CommitList": {
  18849. "description": "CommitList",
  18850. "schema": {
  18851. "type": "array",
  18852. "items": {
  18853. "$ref": "#/definitions/Commit"
  18854. }
  18855. },
  18856. "headers": {
  18857. "X-HasMore": {
  18858. "type": "boolean",
  18859. "description": "True if there is another page"
  18860. },
  18861. "X-Page": {
  18862. "type": "integer",
  18863. "format": "int64",
  18864. "description": "The current page"
  18865. },
  18866. "X-PageCount": {
  18867. "type": "integer",
  18868. "format": "int64",
  18869. "description": "Total number of pages"
  18870. },
  18871. "X-PerPage": {
  18872. "type": "integer",
  18873. "format": "int64",
  18874. "description": "Commits per page"
  18875. },
  18876. "X-Total": {
  18877. "type": "integer",
  18878. "format": "int64",
  18879. "description": "Total commit count"
  18880. }
  18881. }
  18882. },
  18883. "CommitStatus": {
  18884. "description": "CommitStatus",
  18885. "schema": {
  18886. "$ref": "#/definitions/CommitStatus"
  18887. }
  18888. },
  18889. "CommitStatusList": {
  18890. "description": "CommitStatusList",
  18891. "schema": {
  18892. "type": "array",
  18893. "items": {
  18894. "$ref": "#/definitions/CommitStatus"
  18895. }
  18896. }
  18897. },
  18898. "ContentsListResponse": {
  18899. "description": "ContentsListResponse",
  18900. "schema": {
  18901. "type": "array",
  18902. "items": {
  18903. "$ref": "#/definitions/ContentsResponse"
  18904. }
  18905. }
  18906. },
  18907. "ContentsResponse": {
  18908. "description": "ContentsResponse",
  18909. "schema": {
  18910. "$ref": "#/definitions/ContentsResponse"
  18911. }
  18912. },
  18913. "CronList": {
  18914. "description": "CronList",
  18915. "schema": {
  18916. "type": "array",
  18917. "items": {
  18918. "$ref": "#/definitions/Cron"
  18919. }
  18920. }
  18921. },
  18922. "DeployKey": {
  18923. "description": "DeployKey",
  18924. "schema": {
  18925. "$ref": "#/definitions/DeployKey"
  18926. }
  18927. },
  18928. "DeployKeyList": {
  18929. "description": "DeployKeyList",
  18930. "schema": {
  18931. "type": "array",
  18932. "items": {
  18933. "$ref": "#/definitions/DeployKey"
  18934. }
  18935. }
  18936. },
  18937. "EmailList": {
  18938. "description": "EmailList",
  18939. "schema": {
  18940. "type": "array",
  18941. "items": {
  18942. "$ref": "#/definitions/Email"
  18943. }
  18944. }
  18945. },
  18946. "EmptyRepository": {
  18947. "description": "EmptyRepository",
  18948. "schema": {
  18949. "$ref": "#/definitions/APIError"
  18950. }
  18951. },
  18952. "FileDeleteResponse": {
  18953. "description": "FileDeleteResponse",
  18954. "schema": {
  18955. "$ref": "#/definitions/FileDeleteResponse"
  18956. }
  18957. },
  18958. "FileResponse": {
  18959. "description": "FileResponse",
  18960. "schema": {
  18961. "$ref": "#/definitions/FileResponse"
  18962. }
  18963. },
  18964. "GPGKey": {
  18965. "description": "GPGKey",
  18966. "schema": {
  18967. "$ref": "#/definitions/GPGKey"
  18968. }
  18969. },
  18970. "GPGKeyList": {
  18971. "description": "GPGKeyList",
  18972. "schema": {
  18973. "type": "array",
  18974. "items": {
  18975. "$ref": "#/definitions/GPGKey"
  18976. }
  18977. }
  18978. },
  18979. "GeneralAPISettings": {
  18980. "description": "GeneralAPISettings",
  18981. "schema": {
  18982. "$ref": "#/definitions/GeneralAPISettings"
  18983. }
  18984. },
  18985. "GeneralAttachmentSettings": {
  18986. "description": "GeneralAttachmentSettings",
  18987. "schema": {
  18988. "$ref": "#/definitions/GeneralAttachmentSettings"
  18989. }
  18990. },
  18991. "GeneralRepoSettings": {
  18992. "description": "GeneralRepoSettings",
  18993. "schema": {
  18994. "$ref": "#/definitions/GeneralRepoSettings"
  18995. }
  18996. },
  18997. "GeneralUISettings": {
  18998. "description": "GeneralUISettings",
  18999. "schema": {
  19000. "$ref": "#/definitions/GeneralUISettings"
  19001. }
  19002. },
  19003. "GitBlobResponse": {
  19004. "description": "GitBlobResponse",
  19005. "schema": {
  19006. "$ref": "#/definitions/GitBlobResponse"
  19007. }
  19008. },
  19009. "GitHook": {
  19010. "description": "GitHook",
  19011. "schema": {
  19012. "$ref": "#/definitions/GitHook"
  19013. }
  19014. },
  19015. "GitHookList": {
  19016. "description": "GitHookList",
  19017. "schema": {
  19018. "type": "array",
  19019. "items": {
  19020. "$ref": "#/definitions/GitHook"
  19021. }
  19022. }
  19023. },
  19024. "GitTreeResponse": {
  19025. "description": "GitTreeResponse",
  19026. "schema": {
  19027. "$ref": "#/definitions/GitTreeResponse"
  19028. }
  19029. },
  19030. "Hook": {
  19031. "description": "Hook",
  19032. "schema": {
  19033. "$ref": "#/definitions/Hook"
  19034. }
  19035. },
  19036. "HookList": {
  19037. "description": "HookList",
  19038. "schema": {
  19039. "type": "array",
  19040. "items": {
  19041. "$ref": "#/definitions/Hook"
  19042. }
  19043. }
  19044. },
  19045. "Issue": {
  19046. "description": "Issue",
  19047. "schema": {
  19048. "$ref": "#/definitions/Issue"
  19049. }
  19050. },
  19051. "IssueDeadline": {
  19052. "description": "IssueDeadline",
  19053. "schema": {
  19054. "$ref": "#/definitions/IssueDeadline"
  19055. }
  19056. },
  19057. "IssueList": {
  19058. "description": "IssueList",
  19059. "schema": {
  19060. "type": "array",
  19061. "items": {
  19062. "$ref": "#/definitions/Issue"
  19063. }
  19064. }
  19065. },
  19066. "IssueTemplates": {
  19067. "description": "IssueTemplates",
  19068. "schema": {
  19069. "type": "array",
  19070. "items": {
  19071. "$ref": "#/definitions/IssueTemplate"
  19072. }
  19073. }
  19074. },
  19075. "Label": {
  19076. "description": "Label",
  19077. "schema": {
  19078. "$ref": "#/definitions/Label"
  19079. }
  19080. },
  19081. "LabelList": {
  19082. "description": "LabelList",
  19083. "schema": {
  19084. "type": "array",
  19085. "items": {
  19086. "$ref": "#/definitions/Label"
  19087. }
  19088. }
  19089. },
  19090. "LanguageStatistics": {
  19091. "description": "LanguageStatistics",
  19092. "schema": {
  19093. "type": "object",
  19094. "additionalProperties": {
  19095. "type": "integer",
  19096. "format": "int64"
  19097. }
  19098. }
  19099. },
  19100. "MarkdownRender": {
  19101. "description": "MarkdownRender is a rendered markdown document",
  19102. "schema": {
  19103. "type": "string"
  19104. }
  19105. },
  19106. "Milestone": {
  19107. "description": "Milestone",
  19108. "schema": {
  19109. "$ref": "#/definitions/Milestone"
  19110. }
  19111. },
  19112. "MilestoneList": {
  19113. "description": "MilestoneList",
  19114. "schema": {
  19115. "type": "array",
  19116. "items": {
  19117. "$ref": "#/definitions/Milestone"
  19118. }
  19119. }
  19120. },
  19121. "NodeInfo": {
  19122. "description": "NodeInfo",
  19123. "schema": {
  19124. "$ref": "#/definitions/NodeInfo"
  19125. }
  19126. },
  19127. "Note": {
  19128. "description": "Note",
  19129. "schema": {
  19130. "$ref": "#/definitions/Note"
  19131. }
  19132. },
  19133. "NotificationCount": {
  19134. "description": "Number of unread notifications",
  19135. "schema": {
  19136. "$ref": "#/definitions/NotificationCount"
  19137. }
  19138. },
  19139. "NotificationThread": {
  19140. "description": "NotificationThread",
  19141. "schema": {
  19142. "$ref": "#/definitions/NotificationThread"
  19143. }
  19144. },
  19145. "NotificationThreadList": {
  19146. "description": "NotificationThreadList",
  19147. "schema": {
  19148. "type": "array",
  19149. "items": {
  19150. "$ref": "#/definitions/NotificationThread"
  19151. }
  19152. }
  19153. },
  19154. "OAuth2Application": {
  19155. "description": "OAuth2Application",
  19156. "schema": {
  19157. "$ref": "#/definitions/OAuth2Application"
  19158. }
  19159. },
  19160. "OAuth2ApplicationList": {
  19161. "description": "OAuth2ApplicationList represents a list of OAuth2 applications.",
  19162. "schema": {
  19163. "type": "array",
  19164. "items": {
  19165. "$ref": "#/definitions/OAuth2Application"
  19166. }
  19167. }
  19168. },
  19169. "Organization": {
  19170. "description": "Organization",
  19171. "schema": {
  19172. "$ref": "#/definitions/Organization"
  19173. }
  19174. },
  19175. "OrganizationList": {
  19176. "description": "OrganizationList",
  19177. "schema": {
  19178. "type": "array",
  19179. "items": {
  19180. "$ref": "#/definitions/Organization"
  19181. }
  19182. }
  19183. },
  19184. "OrganizationPermissions": {
  19185. "description": "OrganizationPermissions",
  19186. "schema": {
  19187. "$ref": "#/definitions/OrganizationPermissions"
  19188. }
  19189. },
  19190. "Package": {
  19191. "description": "Package",
  19192. "schema": {
  19193. "$ref": "#/definitions/Package"
  19194. }
  19195. },
  19196. "PackageFileList": {
  19197. "description": "PackageFileList",
  19198. "schema": {
  19199. "type": "array",
  19200. "items": {
  19201. "$ref": "#/definitions/PackageFile"
  19202. }
  19203. }
  19204. },
  19205. "PackageList": {
  19206. "description": "PackageList",
  19207. "schema": {
  19208. "type": "array",
  19209. "items": {
  19210. "$ref": "#/definitions/Package"
  19211. }
  19212. }
  19213. },
  19214. "PublicKey": {
  19215. "description": "PublicKey",
  19216. "schema": {
  19217. "$ref": "#/definitions/PublicKey"
  19218. }
  19219. },
  19220. "PublicKeyList": {
  19221. "description": "PublicKeyList",
  19222. "schema": {
  19223. "type": "array",
  19224. "items": {
  19225. "$ref": "#/definitions/PublicKey"
  19226. }
  19227. }
  19228. },
  19229. "PullRequest": {
  19230. "description": "PullRequest",
  19231. "schema": {
  19232. "$ref": "#/definitions/PullRequest"
  19233. }
  19234. },
  19235. "PullRequestList": {
  19236. "description": "PullRequestList",
  19237. "schema": {
  19238. "type": "array",
  19239. "items": {
  19240. "$ref": "#/definitions/PullRequest"
  19241. }
  19242. }
  19243. },
  19244. "PullReview": {
  19245. "description": "PullReview",
  19246. "schema": {
  19247. "$ref": "#/definitions/PullReview"
  19248. }
  19249. },
  19250. "PullReviewComment": {
  19251. "description": "PullComment",
  19252. "schema": {
  19253. "$ref": "#/definitions/PullReviewComment"
  19254. }
  19255. },
  19256. "PullReviewCommentList": {
  19257. "description": "PullCommentList",
  19258. "schema": {
  19259. "type": "array",
  19260. "items": {
  19261. "$ref": "#/definitions/PullReviewComment"
  19262. }
  19263. }
  19264. },
  19265. "PullReviewList": {
  19266. "description": "PullReviewList",
  19267. "schema": {
  19268. "type": "array",
  19269. "items": {
  19270. "$ref": "#/definitions/PullReview"
  19271. }
  19272. }
  19273. },
  19274. "Reaction": {
  19275. "description": "Reaction",
  19276. "schema": {
  19277. "$ref": "#/definitions/Reaction"
  19278. }
  19279. },
  19280. "ReactionList": {
  19281. "description": "ReactionList",
  19282. "schema": {
  19283. "type": "array",
  19284. "items": {
  19285. "$ref": "#/definitions/Reaction"
  19286. }
  19287. }
  19288. },
  19289. "Reference": {
  19290. "description": "Reference",
  19291. "schema": {
  19292. "$ref": "#/definitions/Reference"
  19293. }
  19294. },
  19295. "ReferenceList": {
  19296. "description": "ReferenceList",
  19297. "schema": {
  19298. "type": "array",
  19299. "items": {
  19300. "$ref": "#/definitions/Reference"
  19301. }
  19302. }
  19303. },
  19304. "Release": {
  19305. "description": "Release",
  19306. "schema": {
  19307. "$ref": "#/definitions/Release"
  19308. }
  19309. },
  19310. "ReleaseList": {
  19311. "description": "ReleaseList",
  19312. "schema": {
  19313. "type": "array",
  19314. "items": {
  19315. "$ref": "#/definitions/Release"
  19316. }
  19317. }
  19318. },
  19319. "RepoCollaboratorPermission": {
  19320. "description": "RepoCollaboratorPermission",
  19321. "schema": {
  19322. "$ref": "#/definitions/RepoCollaboratorPermission"
  19323. }
  19324. },
  19325. "Repository": {
  19326. "description": "Repository",
  19327. "schema": {
  19328. "$ref": "#/definitions/Repository"
  19329. }
  19330. },
  19331. "RepositoryList": {
  19332. "description": "RepositoryList",
  19333. "schema": {
  19334. "type": "array",
  19335. "items": {
  19336. "$ref": "#/definitions/Repository"
  19337. }
  19338. }
  19339. },
  19340. "SearchResults": {
  19341. "description": "SearchResults",
  19342. "schema": {
  19343. "$ref": "#/definitions/SearchResults"
  19344. }
  19345. },
  19346. "ServerVersion": {
  19347. "description": "ServerVersion",
  19348. "schema": {
  19349. "$ref": "#/definitions/ServerVersion"
  19350. }
  19351. },
  19352. "StopWatch": {
  19353. "description": "StopWatch",
  19354. "schema": {
  19355. "$ref": "#/definitions/StopWatch"
  19356. }
  19357. },
  19358. "StopWatchList": {
  19359. "description": "StopWatchList",
  19360. "schema": {
  19361. "type": "array",
  19362. "items": {
  19363. "$ref": "#/definitions/StopWatch"
  19364. }
  19365. }
  19366. },
  19367. "StringSlice": {
  19368. "description": "StringSlice",
  19369. "schema": {
  19370. "type": "array",
  19371. "items": {
  19372. "type": "string"
  19373. }
  19374. }
  19375. },
  19376. "Tag": {
  19377. "description": "Tag",
  19378. "schema": {
  19379. "$ref": "#/definitions/Tag"
  19380. }
  19381. },
  19382. "TagList": {
  19383. "description": "TagList",
  19384. "schema": {
  19385. "type": "array",
  19386. "items": {
  19387. "$ref": "#/definitions/Tag"
  19388. }
  19389. }
  19390. },
  19391. "Team": {
  19392. "description": "Team",
  19393. "schema": {
  19394. "$ref": "#/definitions/Team"
  19395. }
  19396. },
  19397. "TeamList": {
  19398. "description": "TeamList",
  19399. "schema": {
  19400. "type": "array",
  19401. "items": {
  19402. "$ref": "#/definitions/Team"
  19403. }
  19404. }
  19405. },
  19406. "TimelineList": {
  19407. "description": "TimelineList",
  19408. "schema": {
  19409. "type": "array",
  19410. "items": {
  19411. "$ref": "#/definitions/TimelineComment"
  19412. }
  19413. }
  19414. },
  19415. "TopicListResponse": {
  19416. "description": "TopicListResponse",
  19417. "schema": {
  19418. "type": "array",
  19419. "items": {
  19420. "$ref": "#/definitions/TopicResponse"
  19421. }
  19422. }
  19423. },
  19424. "TopicNames": {
  19425. "description": "TopicNames",
  19426. "schema": {
  19427. "$ref": "#/definitions/TopicName"
  19428. }
  19429. },
  19430. "TrackedTime": {
  19431. "description": "TrackedTime",
  19432. "schema": {
  19433. "$ref": "#/definitions/TrackedTime"
  19434. }
  19435. },
  19436. "TrackedTimeList": {
  19437. "description": "TrackedTimeList",
  19438. "schema": {
  19439. "type": "array",
  19440. "items": {
  19441. "$ref": "#/definitions/TrackedTime"
  19442. }
  19443. }
  19444. },
  19445. "User": {
  19446. "description": "User",
  19447. "schema": {
  19448. "$ref": "#/definitions/User"
  19449. }
  19450. },
  19451. "UserHeatmapData": {
  19452. "description": "UserHeatmapData",
  19453. "schema": {
  19454. "type": "array",
  19455. "items": {
  19456. "$ref": "#/definitions/UserHeatmapData"
  19457. }
  19458. }
  19459. },
  19460. "UserList": {
  19461. "description": "UserList",
  19462. "schema": {
  19463. "type": "array",
  19464. "items": {
  19465. "$ref": "#/definitions/User"
  19466. }
  19467. }
  19468. },
  19469. "UserSettings": {
  19470. "description": "UserSettings",
  19471. "schema": {
  19472. "type": "array",
  19473. "items": {
  19474. "$ref": "#/definitions/UserSettings"
  19475. }
  19476. }
  19477. },
  19478. "WatchInfo": {
  19479. "description": "WatchInfo",
  19480. "schema": {
  19481. "$ref": "#/definitions/WatchInfo"
  19482. }
  19483. },
  19484. "WikiCommitList": {
  19485. "description": "WikiCommitList",
  19486. "schema": {
  19487. "$ref": "#/definitions/WikiCommitList"
  19488. }
  19489. },
  19490. "WikiPage": {
  19491. "description": "WikiPage",
  19492. "schema": {
  19493. "$ref": "#/definitions/WikiPage"
  19494. }
  19495. },
  19496. "WikiPageList": {
  19497. "description": "WikiPageList",
  19498. "schema": {
  19499. "type": "array",
  19500. "items": {
  19501. "$ref": "#/definitions/WikiPageMetaData"
  19502. }
  19503. }
  19504. },
  19505. "conflict": {
  19506. "description": "APIConflict is a conflict empty response"
  19507. },
  19508. "empty": {
  19509. "description": "APIEmpty is an empty response"
  19510. },
  19511. "error": {
  19512. "description": "APIError is error format response",
  19513. "headers": {
  19514. "message": {
  19515. "type": "string"
  19516. },
  19517. "url": {
  19518. "type": "string"
  19519. }
  19520. }
  19521. },
  19522. "forbidden": {
  19523. "description": "APIForbiddenError is a forbidden error response",
  19524. "headers": {
  19525. "message": {
  19526. "type": "string"
  19527. },
  19528. "url": {
  19529. "type": "string"
  19530. }
  19531. }
  19532. },
  19533. "invalidTopicsError": {
  19534. "description": "APIInvalidTopicsError is error format response to invalid topics",
  19535. "headers": {
  19536. "invalidTopics": {
  19537. "type": "array",
  19538. "items": {
  19539. "type": "string"
  19540. }
  19541. },
  19542. "message": {
  19543. "type": "string"
  19544. }
  19545. }
  19546. },
  19547. "notFound": {
  19548. "description": "APINotFound is a not found empty response"
  19549. },
  19550. "parameterBodies": {
  19551. "description": "parameterBodies",
  19552. "schema": {
  19553. "$ref": "#/definitions/CreateWikiPageOptions"
  19554. }
  19555. },
  19556. "redirect": {
  19557. "description": "APIRedirect is a redirect response"
  19558. },
  19559. "string": {
  19560. "description": "APIString is a string response",
  19561. "schema": {
  19562. "type": "string"
  19563. }
  19564. },
  19565. "validationError": {
  19566. "description": "APIValidationError is error format response related to input validation",
  19567. "headers": {
  19568. "message": {
  19569. "type": "string"
  19570. },
  19571. "url": {
  19572. "type": "string"
  19573. }
  19574. }
  19575. }
  19576. },
  19577. "securityDefinitions": {
  19578. "AccessToken": {
  19579. "type": "apiKey",
  19580. "name": "access_token",
  19581. "in": "query"
  19582. },
  19583. "AuthorizationHeaderToken": {
  19584. "description": "API tokens must be prepended with \"token\" followed by a space.",
  19585. "type": "apiKey",
  19586. "name": "Authorization",
  19587. "in": "header"
  19588. },
  19589. "BasicAuth": {
  19590. "type": "basic"
  19591. },
  19592. "SudoHeader": {
  19593. "description": "Sudo API request as the user provided as the key. Admin privileges are required.",
  19594. "type": "apiKey",
  19595. "name": "Sudo",
  19596. "in": "header"
  19597. },
  19598. "SudoParam": {
  19599. "description": "Sudo API request as the user provided as the key. Admin privileges are required.",
  19600. "type": "apiKey",
  19601. "name": "sudo",
  19602. "in": "query"
  19603. },
  19604. "TOTPHeader": {
  19605. "description": "Must be used in combination with BasicAuth if two-factor authentication is enabled.",
  19606. "type": "apiKey",
  19607. "name": "X-GITEA-OTP",
  19608. "in": "header"
  19609. },
  19610. "Token": {
  19611. "type": "apiKey",
  19612. "name": "token",
  19613. "in": "query"
  19614. }
  19615. },
  19616. "security": [
  19617. {
  19618. "BasicAuth": []
  19619. },
  19620. {
  19621. "Token": []
  19622. },
  19623. {
  19624. "AccessToken": []
  19625. },
  19626. {
  19627. "AuthorizationHeaderToken": []
  19628. },
  19629. {
  19630. "SudoParam": []
  19631. },
  19632. {
  19633. "SudoHeader": []
  19634. },
  19635. {
  19636. "TOTPHeader": []
  19637. }
  19638. ]
  19639. }