mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-12 10:39:38 -05:00
Confidential (private) issues on public repo #1376
Open
opened 2025-11-02 03:58:24 -06:00 by GiteaMirror
·
43 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#1376
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dllud on GitHub (Dec 17, 2017).
Feature request: allow confidential issues on public repositories. As reference, check GitLab's confidential issues.
This is a most for organizations that handle coordinated disclosure and patching of security vulnerabilities on public open-source projects. It would allow discussions to go on between the early disclosure and the full disclosure dates. The issue could later be made public at the date of full disclosure.
This is the opposite of #639 but perhaps can be handled in the same work package as it will require similar constructs.
@kolaente commented on GitHub (Mar 3, 2018):
Should be fairly easy to integrate, we'd just need to add a
privateflag to the db and then ofc check for it in UI + API.@stale[bot] commented on GitHub (Jan 22, 2019):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.
@dllud commented on GitHub (Jan 22, 2019):
What? You should revise this bot.
An issue should only be closed when it gets solved or it is no longer relevant. This issue, which is actually a feature request, reached none of those stages.
@kolaente commented on GitHub (Jan 23, 2019):
@dllud It had no activity since march last year, so ...
The bot also works as a reminder for everyone who is on the issue.
@dllud commented on GitHub (Jan 23, 2019):
So, what? Could you please explain the rationale?
If you wish for the bot to work as a reminder then disable it from closing issues. As it is, it just forces issue reporters to make pointless comments.
As you can see, the discussion we are having is completely irrelevant to the issue at hand.
@jamesponddotco commented on GitHub (Jan 8, 2020):
Back on the topic of the issue, what would be a good bounty to get this one started?
We are willing to pay to get this feature added to Gitea, as all our company discussions happen on a public repository right now, but we would like to keep a few topics confidential — employee review, vulnerability disclosure and whatnot.
@sapk commented on GitHub (Jan 8, 2020):
@jamesponddotco I don't think that it is planned that gitea manage to get paid for feature.
But you can use bounty source like in : https://github.com/go-gitea/gitea/issues/2725
This will attract people, even daily gitea maintainer, to move the issue on top of their list.
@guillep2k commented on GitHub (Jan 8, 2020):
@jamesponddotco If code is accessible by others it seems difficult to tighten security on code changes.
Anyway, I think the quickest way to solve this is to allow private forks from public forks (currently not allowed) and make your work on that fork. If you wish, I think you can create a fork and update the
is_privatecolumn on the database for that repo (Gitea would force it to be public if the original is public as well).@jamesponddotco commented on GitHub (Jan 8, 2020):
@sapk Oh, I know, I am just not sure what sort of amount would be considered fair for something like this. $50? $100? More?
@guillep2k We are looking into keeping specific issues confidential, not code — all our code is open source. We discuss everything in public, kinda like what Gitlab does, but specific individual discussions need to be kept private for privacy or security reasons.
Right now we have a public repository called "company" for public discussions and a private repository called "company-private" for private discussions. We would prefer to have only the "company" repository, so we can maybe open some of these private issues to the public later on.
@guillep2k commented on GitHub (Jan 8, 2020):
@jamesponddotco How do you imagine this feature at work? Will the issue be marked as "restricted" on creation? Will you have a specific team that has access to these restricted issues (this would only be possible if the project owner is an organization)? What about PRs? How do you plan to hide the work in progress (if you intend to)?
The thing is there's plenty of outlets in Gitea that can easily expose an issue to users (e.g. statistics, listings by label, author, milestone, etc., mail notifications, webhooks, API, migration, etc.). There's also the issue of how to deal with assignments, for example, or
@mentions. Then you have the obvious "holes" in the issue numbering that point out to something fishy going on. It all depends on your level of paranoia, of course.@jamesponddotco commented on GitHub (Jan 8, 2020):
@guillep2k Honestly? No idea. Whatever take this would probably need to look at how Gitlab does it.
In the ideal world — at least to me —, there should be a checkbox when creating an issue that mark it as visible only to the creator of the issue and the members of the organisation.
This is how it looks in Gitlab:
Someone from outside would be able to open an issue to report a vulnerability, for example, and everyone from the organisation and the person who created the issue would participate in the discussion. Confidential issues should probably not be available over the API.
@sapk commented on GitHub (Jan 8, 2020):
For the amount, I don't exactly know. I suggest you based yourself on current and past bounty. For the issue that I cited it was 200$. The main contributor post 100$ and added 95$ one month later and someone added 5$. If you look at current issue they should be around 100$ but they are stuck for a little time.
If your need is urgent, I would say start at least at 100$. The issue is basic at first glance but will need refactor of other part of code like doing a private fork of a public repo (for PR/MR like gitlab).
I will finish by saying thanks to propose a bounty this help contributor and even if it is tricky to put a number/price/time it is always really appreciated.
@kolaente commented on GitHub (Jan 9, 2020):
I'd say we could add private issues first, and then private PRs later on since that would require a lot more work - as @guillep2k already pointed out.
@lunny commented on GitHub (Jan 10, 2020):
If someone would like to create a PR, he has to consider something as below.
@Programmierus commented on GitHub (Jan 10, 2020):
Just my 5 cents: we'd love a feature where issues in a special repository are being seen only by issue starter and maintainers. Scenario exactly as mentioned: vulnerabilities reporting. We love to get them reported but want to discuss them internally and only with the reporter before we patch the issue.
At the moment we achieved the same using templates-hack but it's a pain to maintain our changes when updating gitea.
If the above-mentioned will be done I am ready to add another $100 to the bounty.
@jamesponddotco commented on GitHub (Jan 10, 2020):
Bounty posted:
https://www.bountysource.com/issues/52815258-confidential-private-issues-on-public-repo
@raucao commented on GitHub (Mar 8, 2020):
Just adding another use case that would be covered by this: a simple user support/help desk system. A service would have a public repo for end user support, and the user could decide if they want to have their request be public or confidential. And the support team can have access to the confidential issues.
@6543 commented on GitHub (Apr 16, 2020):
I'll take it - If I have enouth time It perhaps get ready before feature freeze
@ni4 commented on GitHub (Oct 7, 2020):
Thanks for starting this. Any progress so far? It would be really useful to track security issues on public repositories, and to have helpdesk-like system, where not all issues could be public due to personal information disclosure and so on.
@6543 commented on GitHub (Oct 7, 2020):
still planed, didnt had time to work on it at the moment.
@radrow commented on GitHub (Apr 12, 2021):
I absolutely appreciate and support this idea. Should be fairly simple to implement and will have huge impact on open source projects that need to keep some critical tickets confidential (for security reasons, surprises, potential misuses, etc).
@techknowlogick commented on GitHub (Apr 12, 2021):
PRs are welcome in that case.
@delvh commented on GitHub (May 24, 2021):
One thing I notice when talking about private issues is an additional security aspect:
Such an issue will most likely get its ID from the public ID pool.
Even if it will not get displayed, users will know that there is an issue that is not being displayed here because they will receive either a
404 - Not Foundor a401 - Forbidden, depending on the implementation. And since issues cannot be permanently deleted without access to the database, that is a pretty clear indicator.Are we fine with notifying users that such issues exist?
In favor of this approach are the following two aspects:
Against it speaks that if any part of the application is not robust enough to protect against accidental intrusion (see i.e. above, most likely there are even more - I can think spontaneously of linking to the issue in PRs, Milestones or Projects), then you have a huge security leak where hackers can see security issues before they are publicly known, and most likely before they are fixed.
Even worse: How can you handle PRs referencing to fix this issue?
Do you simply hide a link to a private issue from the user (i.e. in a
fixes/closes #test), do you show it, or how do you handle that?@lunny commented on GitHub (Jun 1, 2021):
Depends on deleting issue or the index could be non-continuous.
@zack-vii commented on GitHub (Jul 17, 2021):
Hi there,
I was just searching for this feature and stumbled upon this thread. I did not read all of it but concerning the last comment by @delvh I think there is no harm in being open about private issues. In fact for user without access on the lowest level the issue may present itself as something like this:
where <minimum_access_level> may be different in case you can choose to make an issue private to Owner/Maintainer/Developer/Reporter... etc.
@6543 commented on GitHub (Jul 17, 2021):
I dont understand what this comment is about, just an info: this is still on my todo list for features ... (1. rss, 2. this)
@tobiasBora commented on GitHub (Mar 8, 2022):
This is also the scenario I'm interested in. In this setting, it could also be cool to allow only one kind of issue on a repo (for privacy reasons, I may want to ensure that my users never write public issues). It could also be nice to be able to specify at the time of writing the issue who (among the developers) has the right to see this issue, for instance by specifying a list of team. This may be interesting on security issues (you may not want all the dev to learn about the issue).
@6543 commented on GitHub (Mar 9, 2022):
well confidential issues should only be accessible if you are the A. creator; B. a Repo Admin; C. Assigned to this repo
@lunny commented on GitHub (Mar 9, 2022):
D In future, creator or admin could invite others to view this issue.
@tobiasBora commented on GitHub (Mar 9, 2022):
I guess it makes sense for confidential issues. The application I have in mind is maybe a bit outside the scope of gitea, as I was also thinking to use gitea as a kind of project manager in the administration (issues with notifications and history, edition, wiki, being able to reference issues from other issues, assignee, kanboard, milestones, reactions, labels, time tracking... are many things that could certainly be beneficial there as well and could replace or complete emails). In this scenario, some issues should be shared only to parts of the administration : for instance, I guess not everybody in the administration should have access to discussions concerning the budget, and each team may have internal issues they don't want to share by default with others. Also, when external users want to fill tickets about some issues/questions, they often want the ticket to be private, and typically want to notify only a part of the team. That's why I think it would be really cool to provide a way to notify, restrict and invite different kinds of members/teams in the issue (the default configuration may be automatically configured by the issues templates).
@6543 commented on GitHub (Mar 13, 2022):
we dont need an invite feature - just add the user as assignee and it's good to go ... if implemented that way
@6543 commented on GitHub (Mar 13, 2022):
@tobiasBora what you try to do can already be done by teams and orgs ...
@ell1e commented on GitHub (Oct 8, 2022):
This would be really useful for reporting security issues, so a user can file an issue as usual but in a way where it's not necessarily paired with a maybe-not-so-responsible disclosure to everyone. What's the current stance on this? So far from above it reads like it won't be added, which would be a shame.
@6543 commented on GitHub (Oct 8, 2022):
no there is just not enough time to implement atm and it's nothing one should contribute if he is not familiar with the codebase already
@lunny commented on GitHub (Dec 14, 2022):
Since issue could be deleted today, the issue is gone. It maybe deleted.
@delvh commented on GitHub (Dec 14, 2022):
Yep, at the time of writing I didn't think such a thing would ever exist.
That's now of course completely outdated.
@tobiasBora commented on GitHub (Dec 14, 2022):
Well… someone that really wants to attack softwares this way could create a bot that automatically logs all newly created issues, so that it can see if the issue was a really deleted or actually exists (I admit that such users would need to pool quite frequently the repository… but when it comes to security people can do crazy things sometimes). Or if an attacker knows that users typically prefer to close an issue than deleting it (maybe because the UI to delete an issue is hard to find), then they can safely assume that a missing issue is a security issue. It's maybe possible to randomly skip ID to mitigate this attack… but it's still not perfectly secure.
A solution that should be perfectly secure (and that avoids creating a new table) is to allow security issues to only be, say, multiple of 100 (i.e. ending with two zeros), and normal issues should not be multiples of 100. In practice you could create two counters, one to maintain the last ID of a normal issue, one to maintain the last ID of a security issue, skipping the forbidden numbers. As far as I see, this should not cause any backward compatibility issue, as skipping an issue is more or less like adding+directly removing an issue.
Warning: you still want to make sure to display the same error message when an issue does not exist and when you don't have the right to see an issue… or otherwise you could directly count the security issues of a repository (this is also true for any approach proposed so far).
@ell1e commented on GitHub (Dec 14, 2022):
I don't think just knowing a potential security issue exists should be considered a problem. Often, that is even officially announced in advance sometimes days before the patch drops so I don't think it's worth hiding with a lot of effort. (As long as the title and contents of the issue remain private.)
@tobiasBora commented on GitHub (Dec 14, 2022):
Maybe, I don't have strong opinion on that. If it significantly eases the development of the option not to consider that case, then it might be worth doing it without. But in any case it's something to keep in mind.
@lunny commented on GitHub (Dec 14, 2022):
Whatever it's deleted or private, it will return 404 if they are visited by a person with no permission.
@christianTF commented on GitHub (Jan 20, 2023):
My use-case as a maintainer for a Private issue would be, to set an open issue to private to be able to ask the issue starter to add logfiles or config files that may contain GDPR-relevant information or credentials.
Currently we switch to email for that situations, that usually is not comprehensible anymore for the other maintainers.
Sometimes, issue openers aren't aware of such Information is contained in their logs or screenshots, so we would have a quick win to set an issue private instead of deleting or truncate such information.
@lightr4in commented on GitHub (Apr 5, 2023):
Great to see that there's already a feature request for marking pull requests as confidential when fixing security vulnerabilities, and even better that the maintainers have expressed interest in implementing it.
I was recently reminded of the importance of such a feature after watching an informative video by Brodie Robertson, where he discusses the internal security vulnerability issues faced by the curl developers, as detailed in Daniel Stenberg's blog post on pre-notification dilemmas. It would be great to see this feature come to fruition, and I hope that it can be implemented soon to better support open source projects in managing security vulnerabilities.
@steadfasterX commented on GitHub (Apr 16, 2025):
an impressive amount of >170 "me too" since the time of writing. well yea since 2017(!) .. :)
I use gitea as my main issue tracker for several projects and usually all log files I need from users can contain sensitive information which shouldn't be shared with the public. it would be really a great help if private issues could be created on public repos to avoid this and keeping the shared attachments private.
from what I read in several places (cm2, PR #9340, #23071) it should be possible with not that much effort (hopefully) while it would be a great benefit.
a good starting point would be issue #23071 as I think this is required in any case and would help also with this issue here ("private issue (including private attachments) in a public repo")..
I really hope this will be considered in the future as this is an important feature, imho.