Go to file
mrsdizzie 8d99ee2773
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>
2020-04-01 01:14:46 -03:00
.github
assets
cmd make `gitea admin auth list` formatting configurable (#10844) 2020-03-27 22:26:43 +01:00
contrib Migrate to go-git/go-git v5.0.0 (#10735) 2020-03-17 12:19:58 -04:00
custom/conf Multiple LFS improvements (#10667) 2020-03-09 19:56:18 +00:00
docker
docs Add IIS Reverse Proxy documentation (#10881) 2020-03-30 00:11:15 +03:00
integrations Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
models Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
modules Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
options Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
public Add Matrix webhook (#10831) 2020-03-28 15:09:55 +02:00
routers Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
scripts Generate Bindata iff TAGS="bindata" and not up-to-date (#10004) 2020-01-27 01:05:38 +00:00
services Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
snap
templates Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
vendor Upgrade xorm to v1.0.1 and fix start fail with potgres (#10819) 2020-03-25 16:32:23 +02:00
web_src Add Organization Wide Labels (#10814) 2020-04-01 01:14:46 -03:00
.changelog.yml Changelog 1.11.0 (#10204) (#10211) 2020-02-10 11:16:31 -05:00
.drone.yml Add 'make lint', restructure 'compliance' pipeline (#10861) 2020-03-29 12:56:58 +01:00
.editorconfig move CSS build to webpack (#9983) 2020-01-28 07:30:39 +00:00
.eslintrc Misc JS linting and naming tweaks (#10652) 2020-03-11 21:34:54 +02:00
.gitattributes
.gitignore Prevent Firefox from using apple-touch-icon (#10402) 2020-02-23 08:34:53 -06:00
.golangci.yml Improve push update options (#10105) 2020-02-02 15:27:34 -05:00
.ignore
.lgtm
.npmrc
.revive.toml
.stylelintrc Disallow leading zeroes in Less (#10407) 2020-02-23 13:48:27 -03:00
BSDmakefile
CHANGELOG.md Add changelog for v1.11.3 (#10700) (#10708) 2020-03-11 13:49:07 +08:00
CONTRIBUTING.md move CSS build to webpack (#9983) 2020-01-28 07:30:39 +00:00
DCO
Dockerfile go 1.14 (#10467) 2020-03-20 10:29:31 -04:00
LICENSE
MAINTAINERS
Makefile Upgrade golangci-lint to 1.24.0 (#10894) 2020-03-30 21:52:45 +03:00
README.md go 1.14 (#10467) 2020-03-20 10:29:31 -04:00
README_ZH.md update discord link (#10455) 2020-02-25 12:36:45 -05:00
go.mod Upgrade xorm to v1.0.1 and fix start fail with potgres (#10819) 2020-03-25 16:32:23 +02:00
go.sum Upgrade xorm to v1.0.1 and fix start fail with potgres (#10819) 2020-03-25 16:32:23 +02:00
main.go Implement "embedded" command to extract static resources (#9982) 2020-02-02 10:17:44 +08:00
package-lock.json Add 'make lint', restructure 'compliance' pipeline (#10861) 2020-03-29 12:56:58 +01:00
package.json Add 'make lint', restructure 'compliance' pipeline (#10861) 2020-03-29 12:56:58 +01:00
semantic.json Update JS dependencies (#10450) 2020-02-25 01:56:59 -03:00
tools.go
webpack.config.js disable webpack's size warnings (#10746) 2020-03-17 18:57:17 -04:00

README.md

简体中文

logo Gitea - Git with a cup of tea

Build Status Join the Discord chat at https://discord.gg/Gitea codecov Go Report Card GoDoc GitHub release Help Contribute to Open Source Become a backer/sponsor of gitea License: MIT Crowdin

Purpose

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot.

Building

From the root of the source tree, run:

TAGS="bindata" make build

or if sqlite support is required:

TAGS="bindata sqlite sqlite_unlock_notify" make build

The build target is split into two sub-targets:

  • make backend which requires Go 1.12 or greater.
  • make frontend which requires Node.js 10 or greater.

If pre-built frontend files are present it is possible to only build the backend:

	TAGS="bindata" make backend

More info: https://docs.gitea.io/en-us/install-from-source/

Using

./gitea web

NOTE: If you're interested in using our APIs, we have experimental support with documentation.

Contributing

Expected workflow is: Fork -> Patch -> Push -> Pull Request

NOTES:

  1. YOU MUST READ THE CONTRIBUTORS GUIDE BEFORE STARTING TO WORK ON A PULL REQUEST.
  2. If you have found a vulnerability in the project, please write privately to security@gitea.io. Thanks!

Further information

For more information and instructions about how to install Gitea, please look at our documentation. If you have questions that are not covered by the documentation, you can get in contact with us on our Discord server, or forum!

Authors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

FAQ

How do you pronounce Gitea?

Gitea is pronounced /ɡɪti:/ as in "gi-tea" with a hard g.

Why is this not hosted on a Gitea instance?

We're working on it.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Screenshots

Looking for an overview of the interface? Check it out!

Dashboard User Profile Global Issues
Branches Web Editor Activity
New Migration Migrating Pull Request View
Pull Request Dark Diff Review Dark Diff Dark