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

template error in issues list when poster_id is -1 #9189

Closed
2 of 7 tasks
ashimokawa opened this issue Nov 28, 2019 · 28 comments · Fixed by #9539
Closed
2 of 7 tasks

template error in issues list when poster_id is -1 #9189

ashimokawa opened this issue Nov 28, 2019 · 28 comments · Fixed by #9539
Labels
Milestone

Comments

@ashimokawa
Copy link
Contributor

  • Gitea version (or commit ref): 1.10.0+14-gc01afd584
  • Git version: 2.20.1
  • Operating system: Debian 10
  • Database:
    • PostgreSQL
    • MySQL
    • MSSQL
    • SQLite
  • Can you reproduce the bug at https://try.gitea.io:
    • Yes (provide example URL)
    • No
    • Not relevant
  • Log gist:

template: repo/issue/list:236:26: executing "repo/issue/list" at <.Poster.ID>: nil pointer evaluating *models.User.ID

Description

Deleted owners issues sometimes get poster_id=-1 in issue table, leading to a template error in ./templates/repo/issue/list.tmpl in the issue list

This happened for 5 issues on codeberg.org, in an organization where users create one-time accounts for one single interaction, then delete it (I won't comment on that, not my idea), but that fluctuation seems to make the error much more likely.

I am willing to fix the template IF you tell me that -1 is expected, if it is not then we have to find out why poster_id gets set to -1. Or is it rather a bug that deleted users poster_id do NOT get to -1?

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Nov 28, 2019

I have a hunch:

I could happen when issues, which were created by deleted users get closed by someone in the same organization.

that's not the case 😑

@ashimokawa
Copy link
Contributor Author

can't reproduce but happens.
Best is probably to clarify how expected behavior for deleted users is regarding -1 vs dangeling user ID.

An admin on try could also query the issue table...

select count(*) from issue where poster_id=-1

@lunny
Copy link
Member

lunny commented Nov 28, 2019

If users' id <= 0, then it will be replaced as a ghost user.

@ashimokawa
Copy link
Contributor Author

@lunny
No if poster_id is -1 the above error will occur in the template

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Nov 28, 2019

Also dangeling ids will be replaced by ghost, only problem is -1, which keeps occuring.

When I change all -1 to 100000000 the template works

@lunny
Copy link
Member

lunny commented Nov 28, 2019

So this should be a bug.

@ashimokawa
Copy link
Contributor Author

@lunny

Yes, but what is the bug?

  1. The template should work with -1 as poster_id, it does not. that's the bug.

If that is true, why does poster_id of deleted users stays intact in issue table except for rare cases where it is set to -1.

OR

  1. The bug is that poster_id becomes -1, that should not happen

@techknowlogick
Copy link
Member

The poster_id should not be < 0, as template is just saying that it received nil as a user which means that what is being supplied to the template is incorrect. As when ghost is provided that is technically a valid user, so template is ok assuming everything passed to it won’t be nil. If I’m a bit rambly, the -1 id is the bug, not the template.

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Dec 1, 2019

@techknowlogick
This was exactly my question. I would have provided a PR to make the template work with -1, but now I know better. Thanks 👍 .

It does not happen often but it happens that poster_ids become -1, after a user deletes himself.
I had a look at the code but I did not find the cause. As I said earlier we have users on codeberg who - no kidding - create an account for every single issue, then delete it seconds after opening the issue. I also looked for -1 in the comments table but there was none - only in the issue table.

EDIT:
If you are an admin on try.gitea.io would be cool if you could query the database for -1

@techknowlogick
Copy link
Member

@ashimokawa both options work for a solution, just one is better as with template it would just hide the underlying problem.

I just searched gitea.com and try.gitea.io DB and couldn't find any poster_id of -1.

@ashimokawa
Copy link
Contributor Author

@techknowlogick
Thanks for doing the query!

I also did not change the template locally to be able to see if the problem re-occurs. My workaround to to set the id to some very high magic value for those five entries.

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Dec 4, 2019

Damn, this just happened again (the same repo from the "I delete my account for every singe interaction" guys).

https://codeberg.org/crimeflare/cloudflare-tor/issues?q=&type=all&sort=&state=closed&labels=0&milestone=0&assignee=0

`
MariaDB [gitea]> select count(*) from issue where poster_id=-1;
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.001 sec)

`

@mrsdizzie
Copy link
Member

OK so the problem here is that .Poster.ID is nil. There might be some confusion over the issue value of poster_id (would be PosterID in template) with the .ID field of the pointer to a *user model contained in Poster value of the issue (or .Poster.ID in the template).

So in your error what is happening is that the ID of the Poster is nil (looks like Poster itself is nil). The template itself doesn't care (or even check) what poster_id of the issue is, however when creating a list of issues Poster ends up nil if the poster_id is <= 0 :

gitea/models/issue_list.go

Lines 98 to 105 in e80fe20

for _, issue := range issues {
if issue.PosterID <= 0 {
continue
}
var ok bool
if issue.Poster, ok = posterMaps[issue.PosterID]; !ok {
issue.Poster = NewGhostUser()
}

So you can't really change the template to "deal with -1" because it doesn't have a problem with that directly. The template expects Poster to be a valid pointer to a User model (regular or ghost) as it uses several fields from that *User model directly and if it is nil will fail.

As suggested, poster_id of an issue shouldn't get set to -1 when somebody deletes their account.

I'm unable to reproduce that happening, and it sounds like you are also unable to reproduce but are seeing it happen on the live site somehow.

Do you happen to have any combination of Gitea and SQL logs that suggest if the poster_id was changed from something valid to -1 based on a certain action?

Or if perhaps the issue itself was somehow created with a poster_id of -1 initially?

If not if you could enable that type of logging it should at least be possible to see what sets the poster_id of a particular issue to -1 and hopefully that provides more insight into where to look 👀

@lunny
Copy link
Member

lunny commented Dec 4, 2019

OK. Maybe we should

ghostUser := NewGhostUser() 
for _, issue := range issues { 
 	if issue.PosterID <= 0 {
+               issue.Poster = ghostUser
 		continue 
 	} 
 	var ok bool 
 	if issue.Poster, ok = posterMaps[issue.PosterID]; !ok { 
- 		issue.Poster = NewGhostUser() 
+ 		issue.Poster = ghostUser 
 	} 

@mrsdizzie
Copy link
Member

@lunny I think that it being set to -1 is a bug that shouldn't happen (maybe it happens in cases where not a ghost user also). The blame for that section says it specifically is written like that to fix a bug:

#1913

But I'm not familiar with it otherwise. I can't see why poster_id should be -1 in the database ever though since deleting a user doesn't seem to change it.

@ashimokawa
Copy link
Contributor Author

@mrsdizzie

You are right, I cannot reproduce the issue but I see it happening on our instance.
As I said multiple times, it is triggered by a group of people creating throwaway accounts for every single issue comment(!). I guess it makes it more likely to occur. And yes, I am sure that the poster_id changes to -1. To see that I have to enable logging, you are right!

And yes, normally that does not happen! We have many deleted users, I deleted multiple test users myself, normally the poster_id stays an intact, and does not change to -1. But there are these rare cases where it DOES happen. Maybe even the same person triggers it every time, he/she is using tor and creates a new account for every interaction.

I did test a workaround in codeberg-test.org and "fixed" the template by checking if Poster is non-nil, that works, not exactly "allowing -1" but checking for nil.

It is a mystery.

@ashimokawa
Copy link
Contributor Author

Only occurrence where PosterID is set to -1 implicitly is loadPoster(), any chance that the issue is updated in the database after loadPoster() is called?

gitea/models/issue.go

Lines 156 to 170 in 6e81eaf

func (issue *Issue) loadPoster(e Engine) (err error) {
if issue.Poster == nil {
issue.Poster, err = getUserByID(e, issue.PosterID)
if err != nil {
issue.PosterID = -1
issue.Poster = NewGhostUser()
if !IsErrUserNotExist(err) {
return fmt.Errorf("getUserByID.(poster) [%d]: %v", issue.PosterID, err)
}
err = nil
return
}
}
return
}

@mrsdizzie
Copy link
Member

@mrsdizzie

You are right, I cannot reproduce the issue but I see it happening on our instance.
As I said multiple times, it is triggered by a group of people creating throwaway accounts for every single issue comment(!). I guess it makes it more likely to occur. And yes, I am sure that the poster_id changes to -1. To see that I have to enable logging, you are right!

I guess without specific logs and not being able to reproduce with the assumed cause it doesn't seem possible to be sure of anything.

And yes, normally that does not happen! We have many deleted users, I deleted multiple test users myself, normally the poster_id stays an intact, and does not change to -1. But there are these rare cases where it DOES happen. Maybe even the same person triggers it every time, he/she is using tor and creates a new account for every interaction.

It is a mystery.

It should be possible to get specific logs of what is happening and figure it out from there. Anything going into or being changed in the database should have a detailed record and hopefully matching gitea/web logs can provide more information as well.

So there should be some SQL log of the poster_id either being modified or created with -1, and that timestamp should match some sort of Gitea log suggesting an action that triggered it (deleting user, creating issue, something else all together??)

Because there is no code for modifying the poster_id in the delete user function (and nowhere else that I see though certainly possible I am missing it) I'm just as inclined to believe that these issues are somehow being created with a poster_id of -1 rather than the database being modified afterwards -- though again logs should say exactly where this is happening with no need to assume otherwise.

Would be interested to try and get to the bottom of it with those logs if possible

@mrsdizzie
Copy link
Member

Only occurrence where PosterID is set to -1 implicitly is loadPoster(), any chance that the issue is updated in the database after loadPoster() is called?

gitea/models/issue.go

Lines 156 to 170 in 6e81eaf

func (issue *Issue) loadPoster(e Engine) (err error) {
if issue.Poster == nil {
issue.Poster, err = getUserByID(e, issue.PosterID)
if err != nil {
issue.PosterID = -1
issue.Poster = NewGhostUser()
if !IsErrUserNotExist(err) {
return fmt.Errorf("getUserByID.(poster) [%d]: %v", issue.PosterID, err)
}
err = nil
return
}
}
return
}

Nothing here directly modifies the database. There is a chance that anything is happening since none of us can reproduce or 100% say why just looking at the code, but the logs will say for sure what does/did happen.

@ashimokawa
Copy link
Contributor Author

@mrsdizzie

The reason why I believe that it happens afterwards is that it happend after issues got closed, and the time between opening and closing were 3 months for some issues. If it had been -1 upon creation the bug would have been triggered much earlier.

Enough said, we have to do more logging

@ashimokawa
Copy link
Contributor Author

They did it again. Seems they are using the API:

Here is the howto they wrote:

https://codeberg.org/TESTER/debugyou/issues/16

@ashimokawa
Copy link
Contributor Author

They closed 10 issues of a deleted user via api, and all poster_ids of these issues became -1.

I did not yet have time to reproduce it, but I assume the bug is

"closing issues opened by now deleted users via API causes poster id to become -1"

@ashimokawa
Copy link
Contributor Author

@mrsdizzie
@lunny
@techknowlogick
CONFIRMED!
I can reproduce the issue easily, and yes poster_id becomes -1.
Via API (I used gitnex from my phone), close an issue that was opened by a deleted user. That's all.

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Dec 5, 2019

@mrsdizzie

Here is the log when closing the issue via API.
loadPoster() patches poster id to -1 (see code I pasted above)

Then the issue gets updated (all fields) and then it is set to closed (the two lines below from the xorm log)

This probably also happens when changing the issue in another way via API (not only closing)

2019/12/05 08:48:10 .../xorm/session_raw.go:178:exec() [I] [SQL] UPDATE `issue` SET `repo_id` = ?, `index` = ?, `poster_id` = ?, `original_author` = ?, `original_author_id` = ?, `name` = ?, `content` = ?, `milestone_id` = ?, `priority` = ?, `is_closed` = ?, `is_pull` = ?, `num_comments` = ?, `ref` = ?, `deadline_unix` = ?, `closed_unix` = ?, `is_locked` = ?, `updated_unix` = ? WHERE `id`=? []interface {}{45, 2, -1, "", 0, "sddddsdfdsddddd", "sdfsdfdddd", 0, 0, false, false, 2, "", 0, 0, false, 1575532090, 4408} - took: 321.335µs
2019/12/05 08:48:10 .../xorm/session_raw.go:178:exec() [I] [SQL] UPDATE `issue` SET `is_closed` = ?, `closed_unix` = ?, `updated_unix` = ? WHERE `id`=? []interface {}{true, 1575532090, 1575532090, 4408} - took: 267.86µs

@lunny
Copy link
Member

lunny commented Dec 5, 2019

Because loadPoster changed the posterID to -1 if found poster is not there. And when closeing issue, it should not only update issue's status column but not all columns.

@lunny
Copy link
Member

lunny commented Dec 5, 2019

@ashimokawa Thanks for your effort!

@ashimokawa
Copy link
Contributor Author

ashimokawa commented Dec 5, 2019

Keep in mind that closing the issue is only an example, it seems the same happens when changing the issue title (via API)

@6543
Copy link
Member

6543 commented Dec 29, 2019

how and why this bug happen in simple terms

  1. issue.LoadAttributes() andles deleted users by change some data so UI and is working
  2. API issue edit (wich open/close and edit an issue) use this function to load the issue complete into ram
  3. at api routine issue values are changed based on json <- the -1 from loadAttributes is now in the object
  4. the api safe the in memory issue back to DB -> now we have a wrong falue

solutions

techknowlogick pushed a commit that referenced this issue Jan 1, 2020
)

* dont insert "-1" in any case to issue.poster_id

* Make sure API cant override importand fields

* code format

* fix lint

* WIP test

* add missing poster_id

* fix test

* user.IsGhost handle nil

* CI.restart()

* make sure no -1 is realy added

* CI.restart()

* @lunny suggestion remove some not allowed fields

* seperate issue.LoadMilestone

* load milestone and return it on IssueEdit via API

* extend Test for TestAPIEditIssue

* fix fixtures

* declare allowedColumnsUpdateIssueByAPI only once

* Update Year

* no var just write id drecty into func cal

Co-authored-by: Lauris BH <lauris@nix.lv>
6543 added a commit to 6543-forks/gitea that referenced this issue Jan 1, 2020
…ssue (go-gitea#9539)

* dont insert "-1" in any case to issue.poster_id

* Make sure API cant override importand fields

* code format

* add Test for IssueEdit

* load milestone and return it on IssueEdit via API

* extend Test for TestAPIEditIssue
techknowlogick pushed a commit that referenced this issue Jan 2, 2020
…9539) (#9580)

* Fix #9189 - API Allow only specific Colums to be updated on Issue (#9539)

* dont insert "-1" in any case to issue.poster_id

* Make sure API cant override importand fields

* code format

* add Test for IssueEdit

* load milestone and return it on IssueEdit via API

* extend Test for TestAPIEditIssue

* fix TEST

* make sure Poster is loaded

* keep code format on backport as it is
aswild added a commit to aswild/gitea that referenced this issue Jan 23, 2020
* BREAKING
  * Remove unused endpoints (go-gitea#9538)
  * Prefix all user-generated IDs in markup (go-gitea#9477)
  * Enforce Gitea environment for pushes (go-gitea#8982)
  * Hide some user information via API if user have no enough permission (go-gitea#8655)
  * Move startpage/homepage translation to crowdin (go-gitea#8596)
* FEATURES
  * Webhooks should only show sender if it makes sense (go-gitea#9601)
  * Provide Default messages for merges (go-gitea#9393)
  * Add description to labels on create issue (go-gitea#9392)
  * Graceful Queues: Issue Indexing and Tasks (go-gitea#9363)
  * Default NO_REPLY_ADDRESS to DOMAIN (go-gitea#9325)
  * Allow FCGI over unix sockets (go-gitea#9298)
  * Graceful: Xorm, RepoIndexer, Cron and Others (go-gitea#9282)
  * Add API for Reactions (go-gitea#9220)
  * Graceful: Cancel Process on monitor pages & HammerTime (go-gitea#9213)
  * Graceful: Allow graceful restart for unix sockets (go-gitea#9113)
  * Graceful: Allow graceful restart for fcgi (go-gitea#9112)
  * Sign protected branches (go-gitea#8993)
  * Add Graceful shutdown for Windows and hooks for shutdown of goroutines (go-gitea#8964)
  * Add Gitea icon to Emojis (go-gitea#8950)
  * Expand/Collapse Files and Blob Excerpt while Reviewing/Comparing code (go-gitea#8924)
  * Allow Custom Reactions (go-gitea#8886)
  * Close/reopen issues by keywords in titles and comments (go-gitea#8866)
  * Allow incompletely specified Time Formats (go-gitea#8816)
  * Prevent upload (overwrite) of lfs locked file (go-gitea#8769)
  * Template Repositories (go-gitea#8768)
  * Add /milestones endpoint (go-gitea#8733)
  * Make repository management section handle lfs locks (go-gitea#8726)
  * Respect LFS File Lock on UI (go-gitea#8719)
  * Add team option to grant rights for all organization repositories (go-gitea#8688)
  * Enabling and disabling the commit button to prevent empty commits (web editor) (go-gitea#8590)
  * Add setting to disable BASIC authentication (go-gitea#8586)
  * Expose db.SetMaxOpenConns and allow non MySQL dbs to set conn pool params (go-gitea#8528)
  * Allow Protected Branches to Whitelist Deploy Keys (go-gitea#8483)
  * Push to create repo (go-gitea#8419)
  * Sign merges, CRUD, Wiki and Repository initialisation with gpg key (go-gitea#7631)
  * Add basic repository lfs management (go-gitea#7199)
* BUGFIXES
  * Disable remove button on repository teams when have access to all (go-gitea#9640)
  * Clean up old references on branch delete (go-gitea#9614)
  * Hide public repos owned by private orgs (go-gitea#9609)
  * Fix access issues on milestone and issue overview pages. (go-gitea#9603)
  * Fix error logged when repos qs is empty (go-gitea#9591)
  * Dont trigger notification twice on issue assignee change (go-gitea#9582)
  * Fix mirror pushed commit actions (go-gitea#9572)
  * Allow only specific columns to be updated on issue via API (go-gitea#9189) (go-gitea#9539)
  * Fix default avatar for ghost user (go-gitea#9536)
  * Fix download of release attachments with same name (go-gitea#9529)
  * Resolve deprecated INI conversion (go-gitea#9525)
  * Ignore empty avatars during database migration (go-gitea#9520)
  * Fix deleted branch isn't removed when push the branch again (go-gitea#9516)
  * Fix repository issues pagination bug when there are more than one label filter (go-gitea#9512)
  * Fix SetExpr failed (go-gitea#9506)
  * Remove obsolete file private/push_update.go (go-gitea#9503)
  * When recreating hooks, delete them first so they are recreated with the umask (go-gitea#9502)
  * Properly enforce gitea environment for pushes (go-gitea#9501)
  * Fix datarace on repo indexer queue (go-gitea#9490)
  * Add call to load repo prior to redirect in add/remove dependency code (go-gitea#9484)
  * Wrap the code indexer (go-gitea#9476)
  * Use Req.URL.RequestURI() to cope with FCGI urls (go-gitea#9473)
  * Set default ssh.minimum_key_sizes (go-gitea#9466)
  * Fixed issue with paging in /repos/{owner}/{repo}/git/trees/{sha} api (go-gitea#9459)
  * Fix wrong notification on merge (go-gitea#9450)
  * Issue with Migration rule v111 (go-gitea#9449)
  * Trigger webhook when deleting a branch after merging a PR (go-gitea#9424)
  * Add migration to sanitize repository original_url (go-gitea#9423)
  * Use OriginalURL instead of CloneAddr in migration logging (go-gitea#9418)
  * Push update after branch is restored (go-gitea#9416)
  * Fix wrong migration (go-gitea#9381)
  * Fix show repositories filter (go-gitea#9234) (go-gitea#9379)
  * Fix Slack webhook payload title generation to work with Mattermost (go-gitea#9378)
  * Fix double webhook for new PR (go-gitea#9375)
  * AuthorizedKeysCommand should not query db directly (go-gitea#9371)
  * Fix missed change to GetManager() (go-gitea#9361)
  * Fix cache problem on dashboard (go-gitea#9358)
  * RepoIndexer: DefaultBranch needs to be prefixed by BranchPrefix (go-gitea#9356)
  * Fix protected branch using IssueID (go-gitea#9348)
  * Fix nondeterministic behavior (go-gitea#9341)
  * Fix PR/issue redirects when having external tracker (go-gitea#9339)
  * Remove release attachments which repository has been deleted (go-gitea#9334)
  * Fix issue indexer not triggered when migrating a repository (go-gitea#9332)
  * Add SyncTags to uploader interface (go-gitea#9326)
  * Fix bug that release attachment files not deleted when deleting repository (go-gitea#9322)
  * Only sync tags after all migration release batches are completed (go-gitea#9319)
  * File Edit: Author/Committer interchanged (go-gitea#9297)
  * prebuild CSS/JS before xgo release binaries (go-gitea#9293)
  * Log: Ensure FLAGS=none shows no flags (go-gitea#9287)
  * Make Diff Detail on Pull Request Changed File UI always on Top (go-gitea#9280)
  * Switch CSS minifier to cssnano (go-gitea#9260)
  * Fix latest docker image haven't include static files. (go-gitea#9252)
  * Don't link wiki revision to commit (go-gitea#9244)
  * Change review content column to type text in db (go-gitea#9229)
  * Fixed topic regex pattern and added search by topic links after save (go-gitea#9219)
  * Add language to user API responce (go-gitea#9215)
  * Correct tooltip message blocked by dependencies (go-gitea#9211)
  * Add SimpleMDE and Fix Image Paste for Issue/Comment Editor (go-gitea#9197)
  * Fix panic when diff (go-gitea#9187)
  * Fix go-gitea#9151 - smtp logger configuration sendTos should be an array (go-gitea#9154)
  * Fix max length check and limit in multiple repo forms (go-gitea#9148)
  * Always Show Password Field on Link Account Sign-in Page (go-gitea#9147)
  * Properly fix displaying virtual session provider in admin panel (go-gitea#9137)
  * Fix race condition on indexer (go-gitea#9136)
  * Fix team links in HTML rendering (go-gitea#9127)
  * Fix race condition in ReplaceSanitizer (go-gitea#9123)
  * Fix what information is shown about user in API (go-gitea#9115)
  * Fix nil context user for template repositories (go-gitea#9099)
  * Hide given credentials for migrated repos. (go-gitea#9097)
  * Fix reCAPTCHA API URL (go-gitea#9083)
  * Fix password checks on admin create/edit user (go-gitea#9076)
  * Update golang.org/x/crypto vendor to use acme v2 (go-gitea#9056)
  * Ensure Written is set in GZIP ProxyResponseWriter (go-gitea#9018)
  * Fix wrong system notice when repository is empty (go-gitea#9010)
  * Fix broken link to branch from issue list (go-gitea#9003)
  * Fix bug when pack js (go-gitea#8992)
  * New review approvals shouldn't require a message (go-gitea#8991)
  * Shadow password correctly for session config (go-gitea#8984)
  * Don't send notification on pending reviews (go-gitea#8943)
  * Fix Notify Create Ref Error on tag creation (go-gitea#8936)
  * Convert EOL to UNIX-style to render MD properly (go-gitea#8925)
  * Migrate temp_repo.go to use git.NewCommand  (go-gitea#8918)
  * Fix issue with user.fullname (go-gitea#8902)
  * Add Close() method to gogitRepository (go-gitea#8901)
  * Enable punctuations ending mentions (go-gitea#8889)
  * Fix password complexity check on registration (go-gitea#8887)
  * Fix require external registration password (go-gitea#8885)
  * Fix edit content button on migrated issue content (go-gitea#8877)
  * Fix permission checks for close/reopen from commit (go-gitea#8875)
  * Fix API Bug (fail on empty assignees) (go-gitea#8873)
  * Stop using git count-objects and use raw directory size for repository (go-gitea#8848)
  * Fix count for commit graph last page (go-gitea#8843)
  * Fix to close opened io resources as soon as not needed (go-gitea#8839)
  * Improve notification (go-gitea#8835)
  * Fix new user form for non-local users (go-gitea#8826)
  * Fix: remove duplicated signed commit icons (go-gitea#8820)
  * Fix (open/closed) issue count when label excluded (go-gitea#8815)
  * Fix SSH2 conditional in key parsing code (go-gitea#8806)
  * Fix 500 when edit hook (go-gitea#8782)
  * On windows set core.longpaths true (go-gitea#8776)
  * Fix commit expand button to not go to commit link (go-gitea#8745)
  * Avoid re-issuing redundant cross-references. (go-gitea#8734)
  * Fix milestone close timestamp function (go-gitea#8728)
  * Move webhook codes from service to webhook notification (go-gitea#8712)
  * Show zero lines on the line counter if the file empty (go-gitea#8700)
  * Fix deadline on update issue or PR via API (go-gitea#8696)
  * make call createMilestoneComment on newIssue func (go-gitea#8678)
  * Send tag create and push webhook when release created on UI (go-gitea#8671)
  * Prevent chrome download page as html with alt + click (go-gitea#8669)
  * Fix 500 when getting user as unauthenticated user (go-gitea#8653)
  * Graceful fixes (go-gitea#8645)
  * Add SubURL to redirect path (go-gitea#8632) (go-gitea#8634)
  * Fix extra columns from `label` table (go-gitea#8633)
  * Add SubURL to redirect path for transferred/renamed repos (go-gitea#8632)
  * Fix bug when migrate from API (go-gitea#8631)
  * Allow to merge if file path contains " or \ (go-gitea#8629)
  * Prevent removal of non-empty emoji panel following selection of duplicate (go-gitea#8609)
  * Ensure default gpg settings not nil and found commits have reference to repo (go-gitea#8604)
  * Set webhook Content-Type for application/x-www-form-urlencoded (go-gitea#8599)
  * Fix go-gitea#8582 by handling empty repos (go-gitea#8587)
  * Fix of the diff statistics view on pull request's (go-gitea#8581)
  * Fix bug on pull requests when transfer head repository (go-gitea#8564)
  * Fix template error on account page (go-gitea#8562)
  * Allow externalID to be UUID (go-gitea#8551)
  * Fix ignored error on editorconfig api (go-gitea#8550)
  * Fix user avatar name (go-gitea#8547)
  * Ensure that GitRepo is set on Empty repositories (go-gitea#8539)
  * Add missed close in ServeBlobLFS (go-gitea#8527)
  * Fix migrate mirror 500 bug (go-gitea#8526)
  * Fix password complexity regex for special characters (on master) (go-gitea#8525)
* ENHANCEMENTS
  * Add a /user/login landing page option (go-gitea#9622)
  * Some more e-mail notification fixes (go-gitea#9596)
  * Add branch protection option to block merge on requested changes. (go-gitea#9592)
  * Add footer extra links template (go-gitea#9576)
  * Fix for a wrong URL in activity page of repository.  (go-gitea#9571)
  * Update default issue template (go-gitea#9568)
  * Change markdown rendering from blackfriday to goldmark  (go-gitea#9533)
  * Extend file create api with dates (go-gitea#9464)
  * Add ActionCommentPull action (go-gitea#9456)
  * Response for context on retry database connection (go-gitea#9444)
  * Refactor webhooks to reduce code duplication (go-gitea#9422)
  * update couchbase deps for new license (go-gitea#9419)
  * Add .ignore file for search tools (go-gitea#9417)
  * Remove unsued struct (go-gitea#9405)
  * Hide not allowed Reactions (go-gitea#9387)
  * Remove text from action-only webhooks (go-gitea#9377)
  * Move PushToBaseRepo from models to services/pull (go-gitea#9352)
  * Site admin could view org's members (go-gitea#9346)
  * Sleep longer if request speed is over github limitation (go-gitea#9335)
  * Refactor comment (go-gitea#9330)
  * Refactor code indexer (go-gitea#9313)
  * Remove SavePatch and generate patches on the fly (go-gitea#9302)
  * Move some pull request functions from models to services (go-gitea#9266)
  * Update JS dependencies (go-gitea#9255)
  * Show label list on label set (go-gitea#9251)
  * Redirect issue if repo has configured external tracker. (go-gitea#9247)
  * Allow kbd tags (go-gitea#9245)
  * Remove unused comment actions (go-gitea#9222)
  * Fixed errors logging in dump.go (go-gitea#9218)
  * Expose release counter to repo API response (go-gitea#9214)
  * Make consistent links to repository in the Slack/Mattermost notificiations (go-gitea#9205)
  * Expose pull request counter to repo API response (go-gitea#9202)
  * Extend TrackedTimes API (go-gitea#9200)
  * Extend StopWatch API (go-gitea#9196)
  * Move code indexer related code to a new package (go-gitea#9191)
  * Docker: ask s6 to stop all service when gitea stop (go-gitea#9171)
  * Variable expansion in repository templates (go-gitea#9163)
  * Add avatar and issue labels to template repositories (go-gitea#9149)
  * Show single review comments in the PR conversation tab (go-gitea#9143)
  * Extract createComment (go-gitea#9125)
  * Move PushUpdateOptions from models to repofiles (go-gitea#9124)
  * Alternate syntax for cross references (go-gitea#9116)
  * Add USE_SERVICE_WORKER setting (go-gitea#9110)
  * Only show part of members on orgnization dashboard and add paging for orgnization members page (go-gitea#9092)
  * Explore page: Add topic param to pagination (go-gitea#9077) (go-gitea#9078)
  * Markdown: Sanitizier Configuration (go-gitea#9075)
  * Add password requirement info on error (go-gitea#9074)
  * Allow authors to use act keywords in PR content (go-gitea#9059)
  * Move modules/gzip to gitea.com/macaron/gzip (go-gitea#9058)
  * Branch protection: Possibility to not use whitelist but allow anyone with write access (go-gitea#9055)
  * Context menus for comments, add quote reply (go-gitea#9043)
  * Update branch API endpoint to show effective branch protection. (go-gitea#9031)
  * Move git graph from models to modules/graph (go-gitea#9027)
  * Move merge actions to notification (go-gitea#9024)
  * Move mirror sync actions to notification (go-gitea#9022)
  * Add retry for migration http/https requests (go-gitea#9019)
  * Rewrite delivery of issue and comment mails (go-gitea#9009)
  * Add review comments to mail notifications (go-gitea#8996)
  * Refactor pull request review (go-gitea#8954)
  * Githook highlighter (go-gitea#8932)
  * Add git hooks and webhooks to template repositories; move to services (go-gitea#8926)
  * Only view branch or tag if it match refType requested. (go-gitea#8899)
  * Drop Admin attribute based on LDAP when login (continue go-gitea#1743) (go-gitea#8849)
  * Add additional periods to activity page (go-gitea#8829)
  * Update go-org to optimize code (go-gitea#8824)
  * Move some actions to notification/action (go-gitea#8779)
  * Webhook support custom proxy (go-gitea#8760)
  * Fix API deadline removal (go-gitea#8759)
  * Mark review comment as invalidated when file is deleted (go-gitea#8751)
  * Move pull list code to a separate file (go-gitea#8748)
  * Move webhook to a standalone package under modules (go-gitea#8747)
  * Multi repo select on issue page (go-gitea#8741)
  * apply exclude label on milestone issue list (go-gitea#8739)
  * Move issue notifications and assignee man (go-gitea#8713)
  * Move issue change content from models to service (go-gitea#8711)
  * Move issue change status from models to service (go-gitea#8691)
  * Move more issue assignee code from models to issue service (go-gitea#8690)
  * Create PR on Current Repository by Default (go-gitea#8670)
  * Improve Open Graph Protocol (go-gitea#8637)
  * Batch hook pre- and post-receive calls (go-gitea#8602)
  * Improve webhooks (go-gitea#8583)
  * Move transfer repository and rename repository on a service package and start action notification (go-gitea#8573)
  * Implement/Fix PR review webhooks (go-gitea#8570)
  * Rewrite markdown rendering to blackfriday v2 and rewrite orgmode rendering to go-org (go-gitea#8560)
  * Move some repositories' operations to a standalone service package (go-gitea#8557)
  * Allow more than 255 characters for tokens in external_login_user table (go-gitea#8554)
  * Move issue label operations to issue service package (go-gitea#8553)
  * Adjust error reporting from merge failures and use LC_ALL=C for git (go-gitea#8548)
  * Mail assignee when issue/pull request is assigned (go-gitea#8546)
  * Allow committing / adding empty files using the web ui (go-gitea#8420) (go-gitea#8532)
  * Move sync mirror actions to mirror service package (go-gitea#8518)
  * Remove arrows on numeric inputs (go-gitea#8516)
  * Support inline rendering of CUSTOM_URL_SCHEMES (go-gitea#8496)
  * Recalculate repository access only for specific user (go-gitea#8481)
  * Add download button for rull request diff- and patch-file (go-gitea#8470)
  * Add single sign-on support via SSPI on Windows (go-gitea#8463)
  * Move change issue title from models to issue service package (go-gitea#8456)
  * Add included tag on  branch view (go-gitea#8449)
  * Make static resouces web browser cache time customized on app.ini (go-gitea#8442)
  * Enable Uploading/Removing Attachments When Editing an Issue/Comment (go-gitea#8426)
  * Add pagination to commit graph page (go-gitea#8360)
  * Use templates for issue e-mail subject and body (go-gitea#8329)
  * Move clearlabels from models to issue service (go-gitea#8326)
  * Move AddTestPullRequestTask to pull service package from models (go-gitea#8324)
  * Team permission to create repository in organization (go-gitea#8312)
  * Allows external rendering of other filetypes (go-gitea#8300)
  * Add 'Alt + click' feature to exclude labels (go-gitea#8199)
  * Configurable close and reopen keywords for PRs (go-gitea#8120)
  * Configurable URL for static resources (go-gitea#7911)
  * Unifies commit list in repository commit table and wiki revision page (go-gitea#7907)
  * Allow cross-repository dependencies on issues (go-gitea#7901)
  * Auto-subscribe user to repository when they commit/tag to it (go-gitea#7657)
  * Restore Graceful Restarting & Socket Activation (go-gitea#7274)
  * wiki - add 'write' 'preview' buttons to wiki edit like in issues (go-gitea#7241)
  * Change target branch for pull request (go-gitea#6488)
  * Display PR commits and diffs using base repo rather than forked (go-gitea#3648)
* SECURITY
  * Swagger hide search field (go-gitea#9554)
  * Add "search" to reserved usernames (go-gitea#9063)
  * Switch to fomantic-ui (go-gitea#9374)
  * Only serve attachments when linked to issue/release and if accessible by user (go-gitea#9340)
  * Hide credentials when submitting migration through API (go-gitea#9102)
* TESTING
  * Add debug option to serv to help debug problems (go-gitea#9492)
  * Fix the intermittent TestGPGGit failures (go-gitea#9360)
  * Testing: Update postgres sequences (go-gitea#9304)
  * Missed defer prepareTestEnv (go-gitea#9285)
  * Fix "data race" in testlogger (go-gitea#9159)
  * Yet another attempt to fix the intermittent failure of gpg git test (go-gitea#9146)
  * integrations: Fix Dropped Test Errors (go-gitea#9040)
  * services/mirror: fix dropped test errors (go-gitea#9007)
  * Fix intermittent GPG Git test failure (go-gitea#8968)
  * Update Github Migration Tests (go-gitea#8893) (go-gitea#8938)
  * Update heatmap fixtures to restore tests (go-gitea#8615)
* TRANSLATION
  * Fix placeholders in the error message (go-gitea#9060)
  * Fix spelling of admin.users.max_repo_creation (go-gitea#8934)
  * Improve german translation of homepage (go-gitea#8549)
* BUILD
  * Update gitea.com/macaron to 1.4.0 (go-gitea#9608)
  * Upgrade lato fonts to v16. (go-gitea#9498)
  * Update alpine to 3.11 (go-gitea#9440)
  * Upgrade blevesearch (go-gitea#9177)
  * Remove built js/css files from git (go-gitea#9114)
  * Move semantic.dropdown.custom.js to webpack (go-gitea#9064)
  * Check compiled files during build (go-gitea#9042)
  * Enable lazy-loading of gitgraph.js (go-gitea#9036)
  * Pack web_src/js/draw.js to public/js/index.js (go-gitea#8975)
  * Modernize js and use babel (go-gitea#8973)
  * Move index.js to web_src and use webpack to pack them (go-gitea#8598)
  * Restrict modules/graceful to non-windows build and shim IsChild (go-gitea#8537)
  * Upgrade gopkg.in/editorconfig/editorconfig-core-go.v1 (go-gitea#8501)
* DOCS
  * Swagger info corrections (go-gitea#9441) (go-gitea#9558)
  * Add ALLOW_ONLY_EXTERNAL_REGISTRATION to config cheat sheet (go-gitea#8986)
  * Rephrase comment about RuntimeDirectory option in systemd config (go-gitea#8912)
  * Explicitly indicate the socket unit to use the service unit "gitea.service" (go-gitea#8804)
  * Adjust the must-change-password help (go-gitea#8755)
  * Add notice to docs for migrating from more recent versions of Gogs (go-gitea#8724)
  * Add explicit info about customization of homepage (go-gitea#8694)
  * Change external asciidoctor tool to embedded mode (go-gitea#8677)
  * Add Docker fail2ban configuration (go-gitea#8642)
  * Correct some outdated statements in the contributing guidelines (go-gitea#8612)
  * Basic Design guidelines (describing different parts of the code) (go-gitea#8601)
  * Display Gitea logo in Readme (go-gitea#8592)
  * Fix building from source docs to ref AppWorkPath (go-gitea#8567)
  * Update the provided gitea.service to mention socket activation (go-gitea#8531)
  * Doc added how to setup email (go-gitea#8520)
* MISC
  * Add translatable Powered by Gitea text in footer (go-gitea#9600)
  * Add contrib/environment-to-ini (go-gitea#9519)
  * Remove unnecessary loading of settings in update hook (go-gitea#9496)
  * Update gitignore list (go-gitea#9437)
  * Update license list (go-gitea#9436)
  * Fix background reactions in the arc-green theme (go-gitea#9421)
  * Update and fix chardet import (go-gitea#9351)
  * Ensure LF on checkouts and in editors (go-gitea#9259)
  * Fixed topics margin (go-gitea#9248)
  * Add comment to exported function WindowsServiceName (make revive) (go-gitea#9241)
  * Remove empty lines on issues/pulls page (go-gitea#9232)
  * Fix Add Comment Button's "+" Position (go-gitea#9140)
  * Add first issue comment hashtag (go-gitea#9052)
  * Change some label colors (go-gitea#9051)
  * Fix double scroll in branch dropdown (go-gitea#9048)
  * Add comment highlight when target from url (go-gitea#9047)
  * Update display of reactions to issues and comments (go-gitea#9038)
  * Button tooltip formatting under Branches (go-gitea#9034)
  * Allow setting default branch via API (go-gitea#9030)
  * Update dashboard context for PR reviews (go-gitea#8995)
  * Show repository size in repo home page and settings (go-gitea#8940)
  * Allow to add and remove all repositories to/from team. (go-gitea#8867)
  * Show due date in dashboard issues list (go-gitea#8860)
  * Theme arc-green: reverse heatmap colors (go-gitea#8840)
  * Project files table style update (go-gitea#8757)
  * gitignore debugging file from vscode (go-gitea#8740)
  * Add API for Issue set Subscription (go-gitea#8729)
  * Make 100% width search bar (go-gitea#8710)
  * Update color theme for heatmap (go-gitea#8709)
  * Add margin to title_wip_desc (go-gitea#8705)
  * Improve visibility of "Pending" indicator (go-gitea#8685)
  * Improve accessibility of dropdown menus (go-gitea#8638)
  * Make /users/{username}/repos list private repos the current user has access to (go-gitea#8621)
  * Prevent .code-view from overriding font on icon fonts (go-gitea#8614)
  * Add id references on all issue events to allow internal linking (go-gitea#8608)
  * Upgrade xorm to v0.8.0 (go-gitea#8536)
  * Upgrade gopkg.in/ini.v1 (go-gitea#8500)
  * Update CodeMirror to version 5.49.0 (go-gitea#8381)
  * Wiki editor: enable side-by-side button (go-gitea#7242)
@go-gitea go-gitea locked and limited conversation to collaborators Nov 24, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants