| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Container repository cleanup API
Closes #55978
See merge request gitlab-org/gitlab-ce!24303
|
| |
| |
| |
| |
| |
| | |
This includes a set of APIs to manipulate container registry.
This includes also an ability to delete tags based on requested
criteria, like keep-last-n, matching-name, older-than.
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Rémy Coutable <remy@rymai.me>
|
|/
|
|
|
|
|
| |
This is the 1st step for moving Auto DevOps domain into cluster
settings, whether is project or group.
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/52363
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Use BuildMetadata to store build configuration in JSONB form
See merge request gitlab-org/gitlab-ce!21499
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These are data columns that store runtime configuration
of build needed to execute it on runner and within pipeline.
The definition of this data is that once used, and when no longer
needed (due to retry capability) they can be freely removed.
They use `jsonb` on PostgreSQL, and `text` on MySQL (due to lacking
support for json datatype on old enough version).
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
- Add Releases::Links model
- Expose it in release API
- Add integration tests
|
|
|
|
|
| |
Add spec for all release API - GET, POST, PUT, DELETE.
Also, fixes some minior bugs.
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces Releases API under /api/v4/projects/:id/releases
* We are introducing release policies at project level.
* We are deprecating releases changes from tags, both api and web
interface.
* Tags::CreateService no longer create a release
This feature is controlled by :releases_page feature flag
|
|
|
|
|
|
|
|
|
| |
When object storage is enabled, the logos used to customize a GitLab
appearance causes the time-limited URLs to be used. We fix this
by forcing all of these URLs to use the /uploads/-/system prefix
so that they will always be proxied through GitLab.
Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/6778
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
Leave object pools when destroying projects
Closes gitaly#1415
See merge request gitlab-org/gitlab-ce!23869
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This action doesn't lean on reduplication, so a short call can me made
to the Gitaly server to have the object pool remove its remote to the
project pending deletion.
https://gitlab.com/gitlab-org/gitaly/blob/f6cd55357/internal/git/objectpool/link.go#L58
When an object pool doesn't have members, this would invalidate the need
for a pool. So when a project leaves the pool, the pool will be
destroyed on the background.
Fixes: https://gitlab.com/gitlab-org/gitaly/issues/1415
|
|/
|
|
|
| |
Adds a background migration that will ensure all projects that
are on legacy storage have a row in `project_repositories`.
|
|\
| |
| |
| |
| | |
Add name, author and sha to releases
See merge request gitlab-org/gitlab-ce!23763
|
| |
| |
| |
| |
| |
| | |
This commit adds a name to each release, defaulting it to tag name,
keeps track of the SHA when a new release is created and tracks the
current user as release author.
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a project is forked, the new repository used to be a deep copy of everything
stored on disk by leveraging `git clone`. This works well, and makes isolation
between repository easy. However, the clone is at the start 100% the same as the
origin repository. And in the case of the objects in the object directory, this
is almost always going to be a lot of duplication.
Object Pools are a way to create a third repository that essentially only exists
for its 'objects' subdirectory. This third repository's object directory will be
set as alternate location for objects. This means that in the case an object is
missing in the local repository, git will look in another location. This other
location is the object pool repository.
When Git performs garbage collection, it's smart enough to check the
alternate location. When objects are duplicated, it will allow git to
throw one copy away. This copy is on the local repository, where to pool
remains as is.
These pools have an origin location, which for now will always be a
repository that itself is not a fork. When the root of a fork network is
forked by a user, the fork still clones the full repository. Async, the
pool repository will be created.
Either one of these processes can be done earlier than the other. To
handle this race condition, the Join ObjectPool operation is
idempotent. Given its idempotent, we can schedule it twice, with the
same effect.
To accommodate the holding of state two migrations have been added.
1. Added a state column to the pool_repositories column. This column is
managed by the state machine, allowing for hooks on transitions.
2. pool_repositories now has a source_project_id. This column in
convenient to have for multiple reasons: it has a unique index allowing
the database to handle race conditions when creating a new record. Also,
it's nice to know who the host is. As that's a short link to the fork
networks root.
Object pools are only available for public project, which use hashed
storage and when forking from the root of the fork network. (That is,
the project being forked from itself isn't a fork)
In this commit message I use both ObjectPool and Pool repositories,
which are alike, but different from each other. ObjectPool refers to
whatever is on the disk stored and managed by Gitaly. PoolRepository is
the record in the database.
|
|
|
|
|
|
|
|
|
| |
We do not want group level clusters to fall back to what was old
behaviour for project level clusters. So instead we will not return any
KUBE_TOKEN if we cannot find a suitable kubernetes_namespace for the
project, in the group level cluster case.
Add test cases to assert above
|
|
|
|
|
|
|
| |
[master] Stored XSS for Environments
Closes #2727
See merge request gitlab/gitlabhq!2594
|
|\
| |
| |
| |
| | |
Rename Repository table to PoolRepository
See merge request gitlab-org/gitlab-ce!23236
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To separate the different kinds of repositories we have at GitLab this
table will be renamed to pool_repositories. A project can, for now at
least, be member of none, or one of these. The table will get additional
columns in a later merge request where more logic is implemented for the
model.
Further included is a small refactor of logic around hashing ids for the
disk_path, mainly to ensure a previous implementation is reusable.
The disk_path for the pool_repositories table no longer has a NOT NULL
constraint, but given the hashing of the ID requires the DB to assign
the record an ID, an after_create hook is used to update the value.
A related MR is:
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23143, adding
tables for 'normal' repositories and wiki_repositories.
|
|\ \
| | |
| | |
| | |
| | | |
Removes all the irrelevant code and columns that were migrated from the Project…
See merge request gitlab-org/gitlab-ce!21497
|
| | |
| | |
| | |
| | |
| | | |
Clears the import related columns and code from the Project
model over to the ProjectImportState model
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Remove Site Statistic
Closes #53778
See merge request gitlab-org/gitlab-ce!23314
|
| |/
| |
| |
| |
| | |
This approach caused many different problems as we tightened
the query execution timeout.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This ensures that variables accept only string,
alongside also improves kubernetes_namespace,
improving validation and default value being set.
|
| |
|
|
|
|
|
| |
Group clusters should not allow Project Namespace so don't show that
field input too
|
|\
| |
| |
| |
| |
| |
| | |
Usage ping - Differentiate Jira Server and Cloud
Closes #51043
See merge request gitlab-org/gitlab-ce!22791
|
| | |
|