99f08b3f72
Add support for cross project references for labels ## Summary Support for cross project references for labels. ## Rationale 1. Cross project label references are currently not supported in GitLab 1. `to_reference` method signature in `Label` model breaks the abstraction introduced in `Referable`. `concerns/referable.rb: def to_reference(_from_project = nil)` Signatures: ``` label.rb: def to_reference(format = :id) commit_range.rb: def to_reference(from_project = nil) commit.rb: def to_reference(from_project = nil) external_issue.rb: def to_reference(_from_project = nil) group.rb: def to_reference(_from_project = nil) issue.rb: def to_reference(from_project = nil) merge_request.rb: def to_reference(from_project = nil) milestone.rb: def to_reference(from_project = nil) project.rb: def to_reference(_from_project = nil) snippet.rb: def to_reference(from_project = nil) user.rb: def to_reference(_from_project = nil) ``` This MR suggests using `def to_reference(from_project = nil, format: :id)` which makes use of keyword arguments and preserves abstract interface. 1. We need support for cross project label references when we want to move issue to another project It may happen that issue description, system notes or comments contain reference to label and this reference will be invalid after moving issue to another project and will not be displayed correctly unless we have support for cross project references. Merge request that needs this feature: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2831 I think that cross project label references may be useful, (example: `Hey, see our issues for CI in GitLab CE! - gitab-org/gitlab-ce~"CI"`). cc @JobV @DouweM @rspeicher See merge request !2966 |
||
---|---|---|
.. | ||
administration | ||
api | ||
ci | ||
customization | ||
development | ||
gitlab-basics | ||
hooks | ||
incoming_email | ||
install | ||
integration | ||
legal | ||
logs | ||
markdown | ||
migrate_ci_to_ce | ||
monitoring/performance | ||
operations | ||
permissions | ||
profile | ||
project_services | ||
public_access | ||
raketasks | ||
release | ||
security | ||
ssh | ||
system_hooks | ||
update | ||
web_hooks | ||
workflow | ||
README.md |
Documentation
User documentation
- API Automate GitLab via a simple and powerful API.
- GitLab as OAuth2 authentication service provider. It allows you to login to other applications from GitLab.
- GitLab Basics Find step by step how to start working on your commandline and on GitLab.
- Importing to GitLab.
- Markdown GitLab's advanced formatting system.
- Migrating from SVN Convert a SVN repository to Git and GitLab
- Permissions Learn what each role in a project (guest/reporter/developer/master/owner) can do.
- Profile Settings
- Project Services Integrate a project with external services, such as CI and chat.
- Public access Learn how you can allow public and internal access to projects.
- SSH Setup your ssh keys and deploy keys for secure access to your projects.
- Web hooks Let GitLab notify you when new code has been pushed to your project.
- Workflow Using GitLab functionality and importing projects from GitHub and SVN.
CI User documentation
- Get started with GitLab CI
- Learn how to enable or disable GitLab CI
- Learn how
.gitlab-ci.yml
works - Configure a Runner, the application that runs your builds
- Use Docker images with GitLab Runner
- Use CI to build Docker images
- Use variables in your
.gitlab-ci.yml
- Use SSH keys in your build environment
- Trigger builds through the API
- Build artifacts
- User permissions
- API
CI Examples
- The .gitlab-ci.yml file for GitLab itself
- Test your PHP applications
- Test and deploy Ruby applications to Heroku
- Test and deploy Python applications to Heroku
- Test Clojure applications
- Using
dpl
as deployment tool - Help your favorite programming language and GitLab by sending a merge request with a guide for that language.
CI Services
GitLab CI uses the services
keyword to define what docker containers should
be linked with your base image. Below is a list of examples you may use:
Administrator documentation
- Custom git hooks Custom git hooks (on the filesystem) for when web hooks aren't enough.
- Install Requirements, directory structures and installation from source.
- Restart GitLab Learn how to restart GitLab and its components
- Integration How to integrate with systems such as JIRA, Redmine, LDAP and Twitter.
- Issue closing Customize how to close an issue from commit messages.
- Libravatar Use Libravatar for user avatars.
- Log system Log system.
- Environment Variables to configure GitLab.
- Operations Keeping GitLab up and running
- Raketasks Backups, maintenance, automatic web hook setup and the importing of projects.
- Security Learn what you can do to further secure your GitLab instance.
- System hooks Notifications when users, projects and keys are changed.
- Update Update guides to upgrade your installation.
- Welcome message Add a custom welcome message to the sign-in page.
- Reply by email Allow users to comment on issues and merge requests by replying to notification emails.
- Migrate GitLab CI to CE/EE Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE.
- Git LFS configuration
- Housekeeping Keep your Git repository tidy and fast.
- GitLab Performance Monitoring Configure GitLab and InfluxDB for measuring performance metrics
Contributor documentation
- Documentation styleguide Use this styleguide if you are contributing to documentation.
- Development Explains the architecture and the guidelines for shell commands.
- Legal Contributor license agreements.
- Release How to make the monthly and security releases.