WIP: Add admin function for unadopted repositories #490
|
@ -14,9 +14,10 @@ steps:
|
|||
- name: gitea
|
||||
image: gitea/gitea:latest
|
||||
detach: true
|
||||
environment:
|
||||
REPO_ROOT: "/tmp/data"
|
||||
commands:
|
||||
- mkdir -p /tmp/conf/
|
||||
- mkdir -p /tmp/data/
|
||||
- mkdir -p /tmp/conf/ /tmp/data/adoptuser
|
||||
- echo "[security]" > /tmp/conf/app.ini
|
||||
- echo "INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1NTg4MzY4ODB9.LoKQyK5TN_0kMJFVHWUW0uDAyoGjDP6Mkup4ps2VJN4" >> /tmp/conf/app.ini
|
||||
- echo "INSTALL_LOCK = true" >> /tmp/conf/app.ini
|
||||
|
|
2
Makefile
2
Makefile
|
@ -80,7 +80,7 @@ test:
|
|||
.PHONY: test-instance
|
||||
test-instance:
|
||||
rm -f -r ${WORK_DIR}/test 2> /dev/null; \
|
||||
mkdir -p ${WORK_DIR}/test/conf/ ${WORK_DIR}/test/data/
|
||||
mkdir -p ${WORK_DIR}/test/conf/ ${WORK_DIR}/test/data/adoptuser; \
|
||||
wget ${GITEA_DL} -O ${WORK_DIR}/test/gitea-main; \
|
||||
chmod +x ${WORK_DIR}/test/gitea-main; \
|
||||
echo "[security]" > ${WORK_DIR}/test/conf/app.ini; \
|
||||
|
|
37
gitea/admin_adopt.go
Normal file
37
gitea/admin_adopt.go
Normal file
|
@ -0,0 +1,37 @@
|
|||
// Copyright 2021 The Gitea Authors. All rights reserved.
|
||||
6543 marked this conversation as resolved
Outdated
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package gitea
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// AdminListUnadoptedRepositories lists the unadopted repositories that match the provided names
|
||||
func (c *Client) AdminListUnadoptedRepositories(opt ListOptions) ([]string, *Response, error) {
|
||||
6543
commented
Pattern Option missing! Pattern Option missing!
|
||||
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
var repoNames []string
|
||||
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/admin/unadopted?%s", opt.getURLQuery().Encode()), jsonHeader, nil, &repoNames)
|
||||
return repoNames, resp, err
|
||||
}
|
||||
|
||||
// AdminAdoptRepository will adopt an unadopted repository
|
||||
func (c *Client) AdminAdoptRepository(owner, repo string) (*Response, error) {
|
||||
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, resp, err := c.getResponse("POST", fmt.Sprintf("/admin/unadopted/%s/%s", owner, repo), jsonHeader, nil)
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// AdminDeleteUnadoptedRepository will delete an unadopted repository
|
||||
func (c *Client) AdminDeleteUnadoptedRepository(owner, repo string) (*Response, error) {
|
||||
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, resp, err := c.getResponse("DELETE", fmt.Sprintf("/admin/unadopted/%s/%s", owner, repo), jsonHeader, nil)
|
||||
return resp, err
|
||||
}
|
56
gitea/admin_adopt_test.go
Normal file
56
gitea/admin_adopt_test.go
Normal file
|
@ -0,0 +1,56 @@
|
|||
// Copyright 2021 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package gitea
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os/exec"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestAdminAdopt(t *testing.T) {
|
||||
log.Println("== TestAdminAdopt ==")
|
||||
c := newTestClient()
|
||||
createTestUser(t, "adoptuser", c)
|
||||
createTestAdoptRepos(t)
|
||||
|
||||
repos, _, err := c.AdminListUnadoptedRepositories(ListOptions{})
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, repos, 2)
|
||||
|
||||
// cleanup after test
|
||||
/*
|
||||
_, err = c.DeleteRepo("adoptuser", "repo1")
|
||||
assert.NoError(t, err)
|
||||
_, err = c.DeleteRepo("adoptuser", "repo1")
|
||||
assert.NoError(t, err)
|
||||
_, err = c.AdminDeleteUser("adoptuser")
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
func createTestAdoptRepos(t *testing.T) {
|
||||
repoRoot := getRepoRoot()
|
||||
out, err := exec.Command("mkdir", "-p", path.Join(repoRoot, "adoptuser")).Output()
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, "", out)
|
||||
|
||||
repo1 := filepath.Join(repoRoot, "adoptuser", "repo1.git")
|
||||
_, err = exec.Command("git", "init", "--bare", repo1).Output()
|
||||
assert.NoError(t, err)
|
||||
|
||||
repo2 := filepath.Join(repoRoot, "adoptuser", "repo2.git")
|
||||
_, err = exec.Command("git", "init", "--bare", repo2).Output()
|
||||
assert.NoError(t, err)
|
||||
|
||||
/*
|
||||
- git init --bare /tmp/data/adoptuser/repo1.git
|
||||
- git init --bare /tmp/data/adoptuser/repo2.git
|
||||
*/
|
||||
}
|
|
@ -39,6 +39,18 @@ func enableRunGitea() bool {
|
|||
return r
|
||||
}
|
||||
|
||||
func getRepoRoot() string {
|
||||
repoRoot := os.Getenv("REPO_ROOT")
|
||||
if len(repoRoot) != 0 {
|
||||
return repoRoot
|
||||
}
|
||||
pwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return filepath.Join(pwd, "../test/data")
|
||||
}
|
||||
|
||||
func newTestClient() *Client {
|
||||
token := getGiteaToken()
|
||||
if token == "" {
|
||||
|
|
Loading…
Reference in New Issue
Block a user
2021