Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add repository setting to enable/disable health checks #3607

Merged
merged 5 commits into from
Mar 27, 2018

Conversation

aswild
Copy link
Contributor

@aswild aswild commented Mar 2, 2018

New Feature:

  • Repository struct field for IsFsckEnabled (default true of course)
  • Admin Settings section on repo options page, accessible only by
    admin users

Possible Enhancements:

  • There's no way to force running health checks on all repos
    regardless of their IsFsckEnabled setting. This would be useful if
    there were an admin API or dashboard button to run fsck immediately.

Signed-off-by: Allen Wild allenwild93@gmail.com

@codecov-io
Copy link

codecov-io commented Mar 2, 2018

Codecov Report

Merging #3607 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3607      +/-   ##
==========================================
- Coverage   35.79%   35.77%   -0.02%     
==========================================
  Files         288      288              
  Lines       41581    41519      -62     
==========================================
- Hits        14882    14854      -28     
+ Misses      24503    24477      -26     
+ Partials     2196     2188       -8
Impacted Files Coverage Δ
models/migrations/migrations.go 2.58% <ø> (ø) ⬆️
modules/auth/repo_form.go 33.76% <ø> (ø) ⬆️
models/repo.go 42.67% <0%> (ø) ⬆️
routers/repo/setting.go 7.12% <0%> (-0.23%) ⬇️
modules/process/manager.go 76.81% <0%> (-4.35%) ⬇️
routers/repo/setting_protected_branch.go 44.44% <0%> (-0.56%) ⬇️
models/migrations/v59.go 0% <0%> (ø) ⬆️
models/repo_indexer.go 48.3% <0%> (ø) ⬆️
... and 3 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 321cc2a...5f24707. Read the comment docs.

@tboerger tboerger added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Mar 2, 2018
@aswild
Copy link
Contributor Author

aswild commented Mar 2, 2018

Rationale:

  • Issue Add an option to omit health checks for some repositories #1712 requests an option to disable health checks, but I made an option to enable them to avoid confusing inverse logic
  • By default, health checks are enabled for all repos, including mirrors
    • This keeps behavior consistent with older version
    • Git fsck verifies the integrity of the files on disk, just because a repo is a mirror doesn't mean it couldn't become corrupted
  • I added the new admin settings as a section on the Settings->Options tab rather than adding a whole new tab just for one checkbox

Testing:

  • The migration works on sqlite3, I don't have a MySQL or PostgreSQL setup to test on
  • I used BurpSuite to alter a POST request to try to set the admin option as a non-admin user. It returned 403 as expected

New Feature:
  * Repository struct field for IsFsckEnabled (default true of course)
  * Admin Settings section on repo options page, accessible only by
    admin users

Possible Enhancements:
  * There's no way to force running health checks on all repos
    regardless of their IsFsckEnabled setting. This would be useful if
    there were an admin API or dashboard button to run fsck immediately.

Issue: go-gitea#1712
Signed-off-by: Allen Wild <allenwild93@gmail.com>
@lafriks
Copy link
Member

lafriks commented Mar 2, 2018

Why it must be only server admin option?

@aswild
Copy link
Contributor Author

aswild commented Mar 2, 2018

Enabling, configuring, running, and viewing the results of fsck are things that only admins have access to (via app.ini and the admin panel), so it seemed to make sense that normal users don't need this setting exposed.

The main reason to disable fsck is for large repos which take too long to check, but only an admin would know when that's the case. If users could toggle that setting, they a) wouldn't be able to see any actual result and b) might annoy admins who intentionally it set a particular way.

If this is the wrong view, I can remove the admin-only restriction.

@lafriks
Copy link
Member

lafriks commented Mar 2, 2018

@aswild that makes sense :)

@lunny lunny added the type/feature Completely new functionality. Can only be merged if feature freeze is not active. label Mar 3, 2018
@lunny lunny added this to the 1.5.0 milestone Mar 3, 2018
@tboerger tboerger added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Mar 25, 2018
@tboerger tboerger added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Mar 26, 2018
@lunny lunny merged commit 15c6bb5 into go-gitea:master Mar 27, 2018
@lafriks lafriks added the type/changelog Adds the changelog for a new Gitea version label Apr 11, 2018
aswild added a commit to aswild/gitea that referenced this pull request Jul 6, 2018
* SECURITY
  * Limit uploaded avatar image-size to 4096x3072 by default (go-gitea#4353)
  * Do not allow to reuse TOTP passcode (go-gitea#3878)
* FEATURE
  * Add cli commands to regen hooks & keys (go-gitea#3979)
  * Add support for FIDO U2F (go-gitea#3971)
  * Added user language setting (go-gitea#3875)
  * LDAP Public SSH Keys synchronization (go-gitea#1844)
  * Add topic support (go-gitea#3711)
  * Multiple assignees (go-gitea#3705)
  * Add protected branch whitelists for merging (go-gitea#3689)
  * Global code search support (go-gitea#3664)
  * Add label descriptions (go-gitea#3662)
  * Add issue search via API (go-gitea#3612)
  * Add repository setting to enable/disable health checks (go-gitea#3607)
  * Emoji Autocomplete (go-gitea#3433)
  * Implements generator cli for secrets (go-gitea#3531)
* ENHANCEMENT
  * Add more webhooks support and refactor webhook templates directory (go-gitea#3929)
  * Add new option to allow only OAuth2/OpenID user registration (go-gitea#3910)
  * Add option to use paged LDAP search when synchronizing users (go-gitea#3895)
  * Symlink icons (go-gitea#1416)
  * Improve release page UI (go-gitea#3693)
  * Add admin dashboard option to run health checks (go-gitea#3606)
  * Add branch link in branch list (go-gitea#3576)
  * Reduce sql query times in retrieveFeeds (go-gitea#3547)
  * Option to enable or disable swagger endpoints (go-gitea#3502)
  * Add missing licenses (go-gitea#3497)
  * Reduce repo indexer disk usage (go-gitea#3452)
  * Enable caching on assets and avatars (go-gitea#3376)
  * Add repository search ordered by stars/forks. Forks column in admin repo list (go-gitea#3969)
  * Add Environment Variables to Docker template (go-gitea#4012)
  * LFS: make HTTP auth period configurable (go-gitea#4035)
  * Add config path as an optionial flag when changing pass via CLI (go-gitea#4184)
  * Refactor User Settings sections (go-gitea#3900)
  * Allow square brackets in external issue patterns (go-gitea#3408)
  * Add Attachment API (go-gitea#3478)
  * Add EnableTimetracking option to app settings (go-gitea#3719)
  * Add config option to enable or disable log executed SQL (go-gitea#3726)
  * Shows total tracked time in issue and milestone list (go-gitea#3341)
* TRANSLATION
  * Improve English grammar and consistency (go-gitea#3614)
* DEPLOYMENT
  * Allow Gitea to run as different USER in Docker (go-gitea#3961)
  * Provide compressed release binaries (go-gitea#3991)
  * Sign release binaries (go-gitea#4188)
@aswild aswild deleted the fsck-repo-option branch February 8, 2019 01:39
@go-gitea go-gitea locked and limited conversation to collaborators Nov 24, 2020
@delvh delvh removed the type/changelog Adds the changelog for a new Gitea version label Oct 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. type/feature Completely new functionality. Can only be merged if feature freeze is not active.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants