mirror of
https://git.cloudron.io/cloudron/gitea-app
synced 2025-09-25 14:37:44 +00:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
290cb350fe | ||
|
27720786bf | ||
|
f48a4c4d72 | ||
|
65fbb9cb7d | ||
|
63bfe621d1 | ||
|
a6688ede57 | ||
|
7f2646bfb3 | ||
|
aafc1968ec | ||
|
2f85d288e0 | ||
|
e5296ab5ee | ||
|
77e05f56bf | ||
|
4eab21379e | ||
|
1da61b548f | ||
|
76df0b0113 | ||
|
d9fa8399fe |
42
CHANGELOG
42
CHANGELOG
@@ -891,3 +891,45 @@
|
||||
* Update Gitea to 1.16.0
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.0)
|
||||
|
||||
[1.23.5]
|
||||
* Update Gitea to 1.16.1
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.1)
|
||||
* Update JS dependencies, fix lint (#18389) (#18540)
|
||||
* Add dropdown icon to label set template dropdown (#18564) (#18571)
|
||||
* Comments on migrated issues/prs must link to the comment ID (#18630) (#18637)
|
||||
* Stop logging an error when notes are not found (#18626) (#18635)
|
||||
* Ensure that blob-excerpt links work for wiki (#18587) (#18624)
|
||||
* Only attempt to flush queue if the underlying worker pool is not finished (#18593) (#18620)
|
||||
|
||||
[1.23.6]
|
||||
* Update Gitea to 1.16.2
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.2)
|
||||
* Show fullname on issue edits and gpg/ssh signing info (#18828)
|
||||
* Immediately Hammer if second kill is sent (#18823) (#18826)
|
||||
* Allow mermaid render error to wrap (#18791)
|
||||
|
||||
[1.23.7]
|
||||
* Update Gitea to 1.16.3
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.3)
|
||||
|
||||
[1.23.8]
|
||||
* Update Gitea to 1.16.4
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.4)
|
||||
* Restrict email address validation (#17688) (#19085)
|
||||
* Fix lfs bug (#19072) (#19080)
|
||||
|
||||
[1.23.9]
|
||||
* Update Gitea to 1.16.5
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.5)
|
||||
* Prevent redirect to Host (2) (#19175) (#19186)
|
||||
* Try to prevent autolinking of displaynames by email readers (#19169) (#19183)
|
||||
* Clean paths when looking in Storage (#19124) (#19179)
|
||||
* Do not send notification emails to inactive users (#19131) (#19139)
|
||||
* Do not send activation email if manual confirm is set (#19119) (#19122)
|
||||
|
||||
[1.23.10]
|
||||
* Update Gitea to 1.16.6
|
||||
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.16.6)
|
||||
* Only request write when necessary (#18657) (#19422)
|
||||
* Disable service worker by default (#18914) (#19342)
|
||||
|
||||
|
@@ -4,7 +4,8 @@
|
||||
"author": "Gitea developers",
|
||||
"description": "file://DESCRIPTION.md",
|
||||
"tagline": "A painless self-hosted Git Service",
|
||||
"version": "1.23.4",
|
||||
"version": "1.23.10",
|
||||
"upstreamVersion": "1.16.6",
|
||||
"healthCheckPath": "/explore",
|
||||
"httpPort": 3000,
|
||||
"memoryLimit": 536870912,
|
||||
@@ -36,7 +37,7 @@
|
||||
"tags": [ "version control", "git", "code hosting", "development", "github", "bitbucket", "gitlab" ],
|
||||
"changelog": "file://CHANGELOG",
|
||||
"postInstallMessage": "file://POSTINSTALL.md",
|
||||
"minBoxVersion": "5.3.0",
|
||||
"minBoxVersion": "7.1.2",
|
||||
"forumUrl": "https://forum.cloudron.io/category/19/gitea",
|
||||
"documentationUrl": "https://docs.cloudron.io/apps/gitea/"
|
||||
}
|
||||
|
@@ -1,5 +1,3 @@
|
||||
This app packages Gitea <upstream>1.16.0</upstream>
|
||||
|
||||
Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab.
|
||||
|
||||
### Purpose
|
||||
|
@@ -16,7 +16,7 @@ RUN passwd -d git
|
||||
RUN mkdir -p /home/git/gitea
|
||||
WORKDIR /home/git
|
||||
|
||||
ARG VERSION=1.16.0
|
||||
ARG VERSION=1.16.6
|
||||
|
||||
RUN curl -L https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 -o /home/git/gitea/gitea \
|
||||
&& chmod +x /home/git/gitea/gitea
|
||||
|
@@ -5,6 +5,7 @@
|
||||
Port 29418
|
||||
# Use these options to restrict which interfaces/protocols sshd will bind to
|
||||
ListenAddress 0.0.0.0
|
||||
ListenAddress ::
|
||||
Protocol 2
|
||||
# HostKeys for protocol version 2
|
||||
HostKey /app/data/sshd/ssh_host_rsa_key
|
||||
|
67
test/package-lock.json
generated
67
test/package-lock.json
generated
@@ -9,9 +9,9 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"chromedriver": "^97.0.2",
|
||||
"chromedriver": "^100.0.0",
|
||||
"expect.js": "^0.3.1",
|
||||
"mocha": "^9.2.0",
|
||||
"mocha": "^9.2.2",
|
||||
"rimraf": "^3.0.2",
|
||||
"selenium-webdriver": "^4.1.1",
|
||||
"superagent": "^7.1.1"
|
||||
@@ -292,9 +292,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/chromedriver": {
|
||||
"version": "97.0.2",
|
||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-97.0.2.tgz",
|
||||
"integrity": "sha512-sOAfKCR3WsHvmKedZoWa+3tBVGdPtxq4zKxgKZCoJ2c924olBTW4Bnha6SHl93Yo7+QqsNn6ZpAC0ojhutacAg==",
|
||||
"version": "100.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-100.0.0.tgz",
|
||||
"integrity": "sha512-oLfB0IgFEGY9qYpFQO/BNSXbPw7bgfJUN5VX8Okps9W2qNT4IqKh5hDwKWtpUIQNI6K3ToWe2/J5NdpurTY02g==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@testim/chrome-version": "^1.1.2",
|
||||
@@ -1146,9 +1146,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mocha": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz",
|
||||
"integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==",
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
|
||||
"integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
|
||||
"dependencies": {
|
||||
"@ungap/promise-all-settled": "1.1.2",
|
||||
"ansi-colors": "4.1.1",
|
||||
@@ -1163,9 +1163,9 @@
|
||||
"he": "1.2.0",
|
||||
"js-yaml": "4.1.0",
|
||||
"log-symbols": "4.1.0",
|
||||
"minimatch": "3.0.4",
|
||||
"minimatch": "4.2.1",
|
||||
"ms": "2.1.3",
|
||||
"nanoid": "3.2.0",
|
||||
"nanoid": "3.3.1",
|
||||
"serialize-javascript": "6.0.0",
|
||||
"strip-json-comments": "3.1.1",
|
||||
"supports-color": "8.1.1",
|
||||
@@ -1187,6 +1187,17 @@
|
||||
"url": "https://opencollective.com/mochajs"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/minimatch": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
|
||||
"integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
@@ -1198,9 +1209,9 @@
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz",
|
||||
"integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==",
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
|
||||
"integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
@@ -2028,9 +2039,9 @@
|
||||
}
|
||||
},
|
||||
"chromedriver": {
|
||||
"version": "97.0.2",
|
||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-97.0.2.tgz",
|
||||
"integrity": "sha512-sOAfKCR3WsHvmKedZoWa+3tBVGdPtxq4zKxgKZCoJ2c924olBTW4Bnha6SHl93Yo7+QqsNn6ZpAC0ojhutacAg==",
|
||||
"version": "100.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-100.0.0.tgz",
|
||||
"integrity": "sha512-oLfB0IgFEGY9qYpFQO/BNSXbPw7bgfJUN5VX8Okps9W2qNT4IqKh5hDwKWtpUIQNI6K3ToWe2/J5NdpurTY02g==",
|
||||
"requires": {
|
||||
"@testim/chrome-version": "^1.1.2",
|
||||
"axios": "^0.24.0",
|
||||
@@ -2641,9 +2652,9 @@
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz",
|
||||
"integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==",
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
|
||||
"integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
|
||||
"requires": {
|
||||
"@ungap/promise-all-settled": "1.1.2",
|
||||
"ansi-colors": "4.1.1",
|
||||
@@ -2658,9 +2669,9 @@
|
||||
"he": "1.2.0",
|
||||
"js-yaml": "4.1.0",
|
||||
"log-symbols": "4.1.0",
|
||||
"minimatch": "3.0.4",
|
||||
"minimatch": "4.2.1",
|
||||
"ms": "2.1.3",
|
||||
"nanoid": "3.2.0",
|
||||
"nanoid": "3.3.1",
|
||||
"serialize-javascript": "6.0.0",
|
||||
"strip-json-comments": "3.1.1",
|
||||
"supports-color": "8.1.1",
|
||||
@@ -2671,6 +2682,14 @@
|
||||
"yargs-unparser": "2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimatch": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
|
||||
"integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
@@ -2684,9 +2703,9 @@
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz",
|
||||
"integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA=="
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
|
||||
"integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw=="
|
||||
},
|
||||
"normalize-path": {
|
||||
"version": "3.0.0",
|
||||
|
@@ -9,9 +9,9 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"chromedriver": "^97.0.2",
|
||||
"chromedriver": "^100.0.0",
|
||||
"expect.js": "^0.3.1",
|
||||
"mocha": "^9.2.0",
|
||||
"mocha": "^9.2.2",
|
||||
"rimraf": "^3.0.2",
|
||||
"selenium-webdriver": "^4.1.1",
|
||||
"superagent": "^7.1.1"
|
||||
|
41
test/test.js
41
test/test.js
@@ -11,11 +11,10 @@
|
||||
|
||||
require('chromedriver');
|
||||
|
||||
var execSync = require('child_process').execSync,
|
||||
const execSync = require('child_process').execSync,
|
||||
expect = require('expect.js'),
|
||||
fs = require('fs'),
|
||||
path = require('path'),
|
||||
rimraf = require('rimraf'),
|
||||
superagent = require('superagent'),
|
||||
{ Builder, By, until } = require('selenium-webdriver'),
|
||||
{ Options } = require('selenium-webdriver/chrome');
|
||||
@@ -49,7 +48,7 @@ describe('Application life cycle test', function () {
|
||||
|
||||
after(function () {
|
||||
browser.quit();
|
||||
rimraf.sync(repodir);
|
||||
fs.rmSync(repodir, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
function getAppInfo() {
|
||||
@@ -122,24 +121,6 @@ describe('Application life cycle test', function () {
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
||||
}
|
||||
|
||||
async function addPublicKeyOld() {
|
||||
var publicKey = fs.readFileSync(__dirname + '/id_rsa.pub', 'utf8');
|
||||
|
||||
const sshPage = 'https://' + app.fqdn + '/user/settings/keys';
|
||||
|
||||
await browser.get(sshPage);
|
||||
|
||||
await browser.wait(until.elementLocated(By.xpath('//div[@data-panel="#add-ssh-key-panel"]')), TIMEOUT);
|
||||
await browser.findElement(By.xpath('//div[@data-panel="#add-ssh-key-panel"]')).click();
|
||||
await browser.findElement(By.id('ssh-key-title')).sendKeys('testkey');
|
||||
await browser.findElement(By.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
|
||||
var button = browser.findElement(By.xpath('//button[contains(text(), "Add Key")]'));
|
||||
await browser.executeScript('arguments[0].scrollIntoView(false)', button);
|
||||
await browser.findElement(By.xpath('//button[contains(text(), "Add Key")]')).click();
|
||||
|
||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
||||
}
|
||||
|
||||
async function createRepo() {
|
||||
var getRepoPage = await browser.get('https://' + app.fqdn + '/repo/create');
|
||||
|
||||
@@ -165,7 +146,7 @@ describe('Application life cycle test', function () {
|
||||
}
|
||||
|
||||
function cloneRepo() {
|
||||
rimraf.sync(repodir);
|
||||
fs.rmSync(repodir, { recursive: true, force: true });
|
||||
var env = Object.create(process.env);
|
||||
env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
|
||||
execSync(`git clone ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git ${repodir}`, { env: env });
|
||||
@@ -176,7 +157,7 @@ describe('Application life cycle test', function () {
|
||||
env.GIT_SSH = __dirname + '/git_ssh_wrapper.sh';
|
||||
execSync(`touch newfile && git add newfile && git commit -a -mx && git push ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame} master`,
|
||||
{ env: env, cwd: repodir });
|
||||
rimraf.sync('/tmp/testrepo');
|
||||
fs.rmSync(repodir, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
function fileExists() {
|
||||
@@ -252,18 +233,6 @@ describe('Application life cycle test', function () {
|
||||
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
|
||||
});
|
||||
|
||||
// check if the _first_ login via email succeeds
|
||||
it('can login via email', async function () { execSync(`cloudron install --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS); });
|
||||
|
||||
it('can get app information', getAppInfo);
|
||||
it('can login', login.bind(null, email, password));
|
||||
|
||||
it('uninstall app', async function () {
|
||||
// ensure we don't hit NXDOMAIN in the mean time
|
||||
await browser.get('about:blank');
|
||||
execSync('cloudron uninstall --app ' + app.id, EXEC_ARGS);
|
||||
});
|
||||
|
||||
// No SSO
|
||||
it('install app (no sso)', function () { execSync(`cloudron install --no-sso --location ${LOCATION} -p SSH_PORT=${SSH_PORT}`, EXEC_ARGS); });
|
||||
|
||||
@@ -283,7 +252,7 @@ describe('Application life cycle test', function () {
|
||||
it('can login', login.bind(null, username, password));
|
||||
it('can set avatar', setAvatar);
|
||||
it('can get avatar', checkAvatar);
|
||||
it('can add public key', addPublicKeyOld);
|
||||
it('can add public key', addPublicKey);
|
||||
it('can create repo', createRepo);
|
||||
it('can clone the url', cloneRepo);
|
||||
it('can add and push a file', pushFile);
|
||||
|
Reference in New Issue
Block a user