mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-10 06:14:22 +00:00
Compare commits
6 Commits
cleanup
...
fix/repo-put
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b544adf31 | |||
| 4cea5fadc7 | |||
| 8aceb2c3b0 | |||
| 01b5aeb544 | |||
| 2974558aa7 | |||
| 00773f9840 |
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -10,7 +11,6 @@ on:
|
|||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
# see: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
|
|
||||||
shell: bash --noprofile --norc -eo pipefail {0}
|
shell: bash --noprofile --norc -eo pipefail {0}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
make docker-image
|
make docker-image
|
||||||
- name: "Unit Tests"
|
- name: "Unit Tests"
|
||||||
run: |
|
run: |
|
||||||
make docker-unit-tests
|
make docker-unit-test
|
||||||
mkdir -p out/coverage
|
mkdir -p out/coverage
|
||||||
mv unit.out out/coverage/
|
mv unit.out out/coverage/
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
@@ -140,7 +140,7 @@ jobs:
|
|||||||
|
|
||||||
- name: "Upload Code Coverage"
|
- name: "Upload Code Coverage"
|
||||||
if: github.actor != 'dependabot[bot]'
|
if: github.actor != 'dependabot[bot]'
|
||||||
uses: codecov/codecov-action@v5
|
uses: codecov/codecov-action@v7.0.0
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: coverage.txt
|
files: coverage.txt
|
||||||
|
|||||||
+2
-2
@@ -130,14 +130,14 @@ aptly version: 1.5.0+189+g0fc90dff
|
|||||||
|
|
||||||
In order to run aptly unit tests, enter the following:
|
In order to run aptly unit tests, enter the following:
|
||||||
```
|
```
|
||||||
make docker-unit-tests
|
make docker-unit-test
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running system tests
|
#### Running system tests
|
||||||
|
|
||||||
In order to run aptly system tests, enter the following:
|
In order to run aptly system tests, enter the following:
|
||||||
```
|
```
|
||||||
make docker-system-tests
|
make docker-system-test
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running golangci-lint
|
#### Running golangci-lint
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ docker-shell: ## Run aptly and other commands in docker container
|
|||||||
docker-deb: ## Build debian packages in docker container
|
docker-deb: ## Build debian packages in docker container
|
||||||
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
|
||||||
|
|
||||||
docker-unit-tests: ## Run unit tests in docker container (add TEST=regex to specify which tests to run)
|
docker-unit-test: ## Run unit tests in docker container (add TEST=regex to specify which tests to run)
|
||||||
$(DOCKER_RUN) -t --tmpfs /smallfs:rw,size=1m aptly-dev /work/src/system/docker-wrapper \
|
$(DOCKER_RUN) -t --tmpfs /smallfs:rw,size=1m aptly-dev /work/src/system/docker-wrapper \
|
||||||
azurite-start \
|
azurite-start \
|
||||||
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
||||||
@@ -241,4 +241,4 @@ clean: ## remove local build and module cache
|
|||||||
rm -f unit.out aptly.test VERSION docs/docs.go docs/swagger.json docs/swagger.yaml docs/swagger.conf
|
rm -f unit.out aptly.test VERSION docs/docs.go docs/swagger.json docs/swagger.yaml docs/swagger.conf
|
||||||
find system/ -type d -name __pycache__ -exec rm -rf {} \; 2>/dev/null || true
|
find system/ -type d -name __pycache__ -exec rm -rf {} \; 2>/dev/null || true
|
||||||
|
|
||||||
.PHONY: help man prepare swagger version binaries build docker-release docker-system-tests docker-unit-test docker-lint docker-build docker-image docker-man docker-shell docker-serve clean releasetype dpkg serve flake8
|
.PHONY: help man prepare swagger version binaries build docker-release docker-system-test docker-unit-test docker-lint docker-build docker-image docker-man docker-shell docker-serve clean releasetype dpkg serve flake8
|
||||||
|
|||||||
+13
-3
@@ -3,6 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"sort"
|
"sort"
|
||||||
@@ -175,7 +176,7 @@ func apiReposCreate(c *gin.Context) {
|
|||||||
|
|
||||||
type reposEditParams struct {
|
type reposEditParams struct {
|
||||||
// Name of repository to modify
|
// Name of repository to modify
|
||||||
Name *string `binding:"required" json:"Name" example:"repo1"`
|
Name *string ` json:"Name" example:"new-repo-name"`
|
||||||
// Change Comment of repository
|
// Change Comment of repository
|
||||||
Comment *string ` json:"Comment" example:"example repo"`
|
Comment *string ` json:"Comment" example:"example repo"`
|
||||||
// Change Default Distribution for publishing
|
// Change Default Distribution for publishing
|
||||||
@@ -187,7 +188,7 @@ type reposEditParams struct {
|
|||||||
// @Summary Update Repository
|
// @Summary Update Repository
|
||||||
// @Description **Update local repository meta information**
|
// @Description **Update local repository meta information**
|
||||||
// @Tags Repos
|
// @Tags Repos
|
||||||
// @Param name path string true "Repository name"
|
// @Param name path string true "Repository name to modify"
|
||||||
// @Consume json
|
// @Consume json
|
||||||
// @Param request body reposEditParams true "Parameters"
|
// @Param request body reposEditParams true "Parameters"
|
||||||
// @Produce json
|
// @Produce json
|
||||||
@@ -200,11 +201,20 @@ func apiReposEdit(c *gin.Context) {
|
|||||||
if c.Bind(&b) != nil {
|
if c.Bind(&b) != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if b.Name != nil {
|
||||||
|
new_name, err := url.PathUnescape(*b.Name)
|
||||||
|
if err != nil {
|
||||||
|
AbortWithJSONError(c, 400, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
*b.Name = new_name
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
collectionFactory := context.NewCollectionFactory()
|
collectionFactory := context.NewCollectionFactory()
|
||||||
collection := collectionFactory.LocalRepoCollection()
|
collection := collectionFactory.LocalRepoCollection()
|
||||||
|
|
||||||
name := c.Params.ByName("name")
|
name := c.Params.ByName("name") // repo to modify
|
||||||
repo, err := collection.ByName(name)
|
repo, err := collection.ByName(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
AbortWithJSONError(c, 404, err)
|
AbortWithJSONError(c, 404, err)
|
||||||
|
|||||||
@@ -461,3 +461,34 @@ class ReposAPITestCopyPackage(APITest):
|
|||||||
|
|
||||||
self.check_equal(self.get(f"/api/repos/{repo2_name}/packages").json(),
|
self.check_equal(self.get(f"/api/repos/{repo2_name}/packages").json(),
|
||||||
['Pi386 libboost-program-options-dev 1.49.0.1 918d2f433384e378'])
|
['Pi386 libboost-program-options-dev 1.49.0.1 918d2f433384e378'])
|
||||||
|
|
||||||
|
|
||||||
|
class ReposAPITestCreateEdit(APITest):
|
||||||
|
"""
|
||||||
|
POST /api/repos,
|
||||||
|
"""
|
||||||
|
def check(self):
|
||||||
|
repo_name = self.random_name() + ' with space'
|
||||||
|
repo_desc = {'Comment': 'fun repo',
|
||||||
|
'DefaultComponent': 'contrib',
|
||||||
|
'DefaultDistribution': 'bookworm',
|
||||||
|
'Name': repo_name}
|
||||||
|
|
||||||
|
resp = self.post("/api/repos", json=repo_desc)
|
||||||
|
self.check_equal(resp.json(), repo_desc)
|
||||||
|
self.check_equal(resp.status_code, 201)
|
||||||
|
|
||||||
|
repo_desc = {'Comment': 'modified repo',
|
||||||
|
'DefaultComponent': 'main',
|
||||||
|
'DefaultDistribution': 'trixie',
|
||||||
|
'Name': repo_name + '@renamed'}
|
||||||
|
resp = self.put(f"/api/repos/{repo_name}", json=repo_desc)
|
||||||
|
self.check_equal(resp.json(), repo_desc)
|
||||||
|
self.check_equal(resp.status_code, 200)
|
||||||
|
|
||||||
|
resp = self.get("/api/repos/" + repo_name + '@renamed')
|
||||||
|
self.check_equal(resp.json(), repo_desc)
|
||||||
|
self.check_equal(resp.status_code, 200)
|
||||||
|
|
||||||
|
resp = self.delete("/api/repos/" + repo_name + '@renamed')
|
||||||
|
self.check_equal(resp.status_code, 200)
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ import tempfile
|
|||||||
|
|
||||||
class TestOut:
|
class TestOut:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.tmp_file = tempfile.NamedTemporaryFile(delete=False)
|
self.tmp_file = tempfile.NamedTemporaryFile(delete=True)
|
||||||
self.read_pos = 0
|
self.read_pos = 0
|
||||||
|
|
||||||
def fileno(self):
|
def fileno(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user