gitlab-org--gitlab-foss/doc/user/project/index.md

166 lines
7.3 KiB
Markdown
Raw Normal View History

2017-07-31 05:44:07 -04:00
# Projects
In GitLab, you can create projects for hosting
your codebase, use it as an issue tracker, collaborate on code, and continuously
build, test, and deploy your app with built-in GitLab CI/CD.
Your projects can be [available](../../public_access/public_access.md)
publicly, internally, or privately, at your choice. GitLab does not limit
the number of private projects you create.
## Project's features
When you create a project in GitLab, you'll have access to a large number of
[features](https://about.gitlab.com/features/):
**Issues and merge requests:**
- [Issue tracker](issues/index.md): Discuss implementations with your team within issues
- [Issue Boards](issue_board.md): Organize and prioritize your workflow
- [Multiple Issue Boards](https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards) (**EES/EEP**): Allow your teams to create their own workflows (Issue Boards) for the same project
- [Repositories](repository/index.md): Host your code in a fully
integrated platform
2017-09-08 10:08:07 -04:00
- [Branches](repository/branches/index.md): use Git branching strategies to
collaborate on code
2017-07-31 05:44:07 -04:00
- [Protected branches](protected_branches.md): Prevent collaborators
from messing with history or pushing code without review
- [Protected tags](protected_tags.md): Control over who has
permission to create tags, and prevent accidental update or deletion
2017-08-18 03:48:11 -04:00
- [Signing commits](gpg_signed_commits/index.md): use GPG to sign your commits
2017-07-31 05:44:07 -04:00
- [Merge Requests](merge_requests/index.md): Apply your branching
strategy and get reviewed by your team
- [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) (**EES/EEP**): Ask for approval before
implementing a change
- [Fix merge conflicts from the UI](merge_requests/resolve_conflicts.md):
Your Git diff tool right from GitLab's UI
- [Review Apps](../../ci/review_apps/index.md): Live preview the results
of the changes proposed in a merge request in a per-branch basis
- [Labels](labels.md): Organize issues and merge requests by labels
- [Time Tracking](../../workflow/time_tracking.md): Track estimate time
and time spent on
the conclusion of an issue or merge request
- [Milestones](milestones/index.md): Work towards a target date
- [Description templates](description_templates.md): Define context-specific
templates for issue and merge request description fields for your project
- [Slash commands (quick actions)](quick_actions.md): Textual shortcuts for
common actions on issues or merge requests
**GitLab CI/CD:**
- [GitLab CI/CD](../../ci/README.md): GitLab's built-in [Continuous Integration, Delivery, and Deployment](https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) tool
- [Container Registry](container_registry.md): Build and push Docker
images out-of-the-box
- [Auto Deploy](../../ci/autodeploy/index.md): Configure GitLab CI/CD
to automatically set up your app's deployment
- [Enable and disable GitLab CI](../../ci/enable_or_disable_ci.md)
- [Pipelines](../../ci/pipelines.md#pipelines): Configure and visualize
your GitLab CI/CD pipelines from the UI
- [Scheduled Pipelines](pipelines/schedules.md): Schedule a pipeline
to start at a chosen time
- [Pipeline Graphs](../../ci/pipelines.md#pipeline-graphs): View your
entire pipeline from the UI
- [Job artifacts](pipelines/job_artifacts.md): Define,
browse, and download job artifacts
- [Pipeline settings](pipelines/settings.md): Set up Git strategy (choose the default way your repository is fetched from GitLab in a job),
timeout (defines the maximum amount of time in minutes that a job is able run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline's visibility, and much more
2017-10-06 02:01:30 -04:00
- [GKE cluster integration](clusters/index.md): Connecting your GitLab project
2017-11-26 11:08:08 -05:00
with Google Kubernetes Engine
2017-07-31 05:44:07 -04:00
- [GitLab Pages](pages/index.md): Build, test, and deploy your static
website with GitLab Pages
**Other features:**
- [Cycle Analytics](cycle_analytics.md): Review your development lifecycle
- [Syntax highlighting](highlighting.md): An alternative to customize
your code blocks, overriding GitLab's default choice of language
### Project's integrations
[Integrate your project](integrations/index.md) with Jira, Mattermost,
Kubernetes, Slack, and a lot more.
## New project
Learn how to [create a new project](../../gitlab-basics/create-project.md) in GitLab.
### Fork a project
You can [fork a project](../../gitlab-basics/fork-project.md) in order to:
- Collaborate on code by forking a project and creating a merge request
from your fork to the upstream project
- Fork a sample project to work on the top of that
## Project settings
Read through the documentation on [project settings](settings/index.md).
2017-07-31 05:44:07 -04:00
## Import or export a project
- [Import a project](import/index.md) from:
- [GitHub to GitLab](import/github.md)
- [BitBucket to GitLab](import/bitbucket.md)
- [Gitea to GitLab](import/gitea.md)
- [FogBugz to GitLab](import/fogbugz.md)
2017-07-31 05:44:07 -04:00
- [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data)
- [Importing and exporting projects between GitLab instances](settings/import_export.md)
## Transferring an existing project into another namespace
You can transfer an existing project into a [group](../group/index.md) as long
as you have at least **Master** [permissions](../permissions.md#permissions) to
that group and if you are an **Owner** of the project.
Similarly, if you are an owner of a group, you can transfer any of its projects
under your own user.
1. Navigate to your project's **Settings > General > Advanced settings**.
1. Under "Transfer project", choose the namespace you want to transfer the
project to.
1. Confirm the transfer by typing the project's path as instructed.
Once done, you will be taken to the new project's namespace. At this point,
read what happens with the
[redirects from the old project to the new one](#redirects-when-transferring-or-renaming-projects).
NOTE: **Note:**
GitLab administrators can use the admin interface to move any project to any
namespace if needed.
## Renaming a project
## Redirects when transferring or renaming projects
When [transferring](#transfer-an-existing-project-into-a-group) or
[renaming](#renaming-a-project) a project, it is essential to smoothly
transition from the old location to the new one. GitLab provides two kinds
of redirects: web UI and Git push/pull redirects.
When visiting the old project's URL from your browser, you will be automatically
to the new location.
Starting with GitLab 10.3, Git actions will also redirect. This means that any
build scripts, automation, or Git clients will continue to work after a
rename, making any transition a lot smoother.
Every time you push/pull to a repository that has changed its location,
a redirect warning message to update your remote will be displayed instead of
rejecting your action.
NOTE: **Note:**
To avoid pulling from or pushing to an entirely incorrect repository, the old
path will be reserved.
## Project's members
Learn how to [add members to your projects](members/index.md).
### Leave a project
2017-07-31 05:44:07 -04:00
**Leave project** will only display on the project's dashboard
when a project is part of a group (under a
[group namespace](../group/index.md#namespaces)).
If you choose to leave a project you will no longer be a project
member, therefore, unable to contribute.