mirror of
https://git.cloudron.io/cloudron/gitea-app
synced 2025-09-26 06:57:26 +00:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4b15736f81 | ||
|
8876fedd40 | ||
|
65df2c54da | ||
|
245b93ea02 | ||
|
8596073c51 | ||
|
6a85b0cea2 | ||
|
5205ba5e83 | ||
|
f668f4f3ab | ||
|
7eca682cec |
41
CHANGELOG.md
41
CHANGELOG.md
@@ -1219,4 +1219,45 @@
|
|||||||
* Make mailer SMTP check have timed context (#24751) (#24759)
|
* Make mailer SMTP check have timed context (#24751) (#24759)
|
||||||
* Do not select line numbers when selecting text from the action run logs (#24594) (#24596)
|
* Do not select line numbers when selecting text from the action run logs (#24594) (#24596)
|
||||||
|
|
||||||
|
[1.29.0]
|
||||||
|
* Update Gitea to 1.20.0
|
||||||
|
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.20.0)
|
||||||
|
* [Blog](https://blog.gitea.com/release-of-1.20.0/)
|
||||||
|
* Add button on diff header to copy file name, misc diff header tweaks (#24986)
|
||||||
|
* API endpoint for changing/creating/deleting multiple files (#24887)
|
||||||
|
* Support changing git config through app.ini, use diff.algorithm=histogram by default (#24860)
|
||||||
|
* Add up and down arrows to selected lookup repositories (#24727)
|
||||||
|
* Add Go package registry (#24687)
|
||||||
|
* Add status indicator on main home screen for each repo (#24638)
|
||||||
|
* Support for status check pattern (#24633)
|
||||||
|
|
||||||
|
[1.29.1]
|
||||||
|
* Update Gitea to 1.20.1
|
||||||
|
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.20.1)
|
||||||
|
* Disallow dangerous URL schemes (#25960) (#25964)
|
||||||
|
* Show the mismatched ROOT_URL warning on the sign-in page if OAuth2 is enabled (#25947) (#25972)
|
||||||
|
* Make pending commit status yellow again (#25935) (#25968)
|
||||||
|
* Fix version in rpm repodata/primary.xml.gz (#26009) (#26048)
|
||||||
|
* Fix env config parsing for "GITEA____APP_NAME" (#26001) (#26013)
|
||||||
|
* ParseScope with owner/repo always sets owner to zero (#25987) (#25989)
|
||||||
|
* Fix SSPI auth panic (#25955) (#25969)
|
||||||
|
* Avoid creating directories when loading config (#25944) (#25957)
|
||||||
|
* Make environment-to-ini work with INSTALL_LOCK=true (#25926) (#25937)
|
||||||
|
* Ignore `runs-on` with expressions when warning no matched runners (#25917) (#25933)
|
||||||
|
* Avoid opening/closing PRs which are already merged (#25883) (#25903)
|
||||||
|
* RPM Registry: Show zypper commands for SUSE based distros as well (#25981) (#26020)
|
||||||
|
* Correctly refer to dev tags as nightly in the docker docs (#26004) (#26019)
|
||||||
|
* Update path related documents (#25417) (#25982)
|
||||||
|
* Adding remaining enum for migration repo model type. (#26021) (#26034)
|
||||||
|
* Fix the route for pull-request's authors (#26016) (#26018)
|
||||||
|
* Fix commit status color on dashboard repolist (#25993) (#25998)
|
||||||
|
* Avoid hard-coding height in language dropdown menu (#25986) (#25997)
|
||||||
|
* Add shutting down notice (#25920) (#25922)
|
||||||
|
* Fix incorrect milestone count when provide a keyword (#25880) (#25904)
|
||||||
|
|
||||||
|
[1.29.2]
|
||||||
|
* Update Gitea to 1.20.2
|
||||||
|
* [Full changelog](https://github.com/go-gitea/gitea/releases/tag/v1.20.2)
|
||||||
|
* Calculate `MAX_WORKERS` default value by CPU number (#26177) (#26183)
|
||||||
|
* Display deprecated warning in admin panel pages as well as in the log file (#26094) (#26154)
|
||||||
|
|
||||||
|
@@ -4,8 +4,8 @@
|
|||||||
"author": "Gitea developers",
|
"author": "Gitea developers",
|
||||||
"description": "file://DESCRIPTION.md",
|
"description": "file://DESCRIPTION.md",
|
||||||
"tagline": "A painless self-hosted Git Service",
|
"tagline": "A painless self-hosted Git Service",
|
||||||
"version": "1.28.4",
|
"version": "1.29.2",
|
||||||
"upstreamVersion": "1.19.4",
|
"upstreamVersion": "1.20.2",
|
||||||
"healthCheckPath": "/explore",
|
"healthCheckPath": "/explore",
|
||||||
"httpPort": 3000,
|
"httpPort": 3000,
|
||||||
"memoryLimit": 536870912,
|
"memoryLimit": 536870912,
|
||||||
|
@@ -19,7 +19,7 @@ WORKDIR /home/git
|
|||||||
# for autosign feature
|
# for autosign feature
|
||||||
ENV GNUPGHOME="/app/data/gnupg"
|
ENV GNUPGHOME="/app/data/gnupg"
|
||||||
|
|
||||||
ARG VERSION=1.19.4
|
ARG VERSION=1.20.2
|
||||||
|
|
||||||
RUN curl -L https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 -o /home/git/gitea/gitea \
|
RUN curl -L https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 -o /home/git/gitea/gitea \
|
||||||
&& chmod +x /home/git/gitea/gitea
|
&& chmod +x /home/git/gitea/gitea
|
||||||
|
@@ -53,11 +53,13 @@ PATH =
|
|||||||
ENABLED = true
|
ENABLED = true
|
||||||
|
|
||||||
; those settings are protected and can't be modified
|
; those settings are protected and can't be modified
|
||||||
HOST = ##MAIL_SERVER:##MAIL_PORT
|
SMTP_ADDR = ##MAIL_SERVER
|
||||||
|
SMTP_PORT = ##MAIL_PORT
|
||||||
USER = ##MAIL_SMTP_USERNAME
|
USER = ##MAIL_SMTP_USERNAME
|
||||||
PASSWD = ##MAIL_SMTP_PASSWORD
|
PASSWD = ##MAIL_SMTP_PASSWORD
|
||||||
FROM = ##MAIL_FROM
|
FROM = ##MAIL_FROM
|
||||||
SKIP_VERIFY = true
|
PROTOCOL = smtps
|
||||||
|
FORCE_TRUST_SERVER_CERT = true
|
||||||
|
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
|
6
start.sh
6
start.sh
@@ -111,11 +111,13 @@ crudini --set "/run/gitea/app.ini" server SSH_PORT "${SSH_PORT}"
|
|||||||
crudini --set "/run/gitea/app.ini" server APP_DATA_PATH "/app/data/appdata"
|
crudini --set "/run/gitea/app.ini" server APP_DATA_PATH "/app/data/appdata"
|
||||||
crudini --set "/run/gitea/app.ini" repository ROOT "/app/data/repository"
|
crudini --set "/run/gitea/app.ini" repository ROOT "/app/data/repository"
|
||||||
crudini --set "/run/gitea/app.ini" repository.upload TEMP_PATH "/run/gitea/tmp/uploads"
|
crudini --set "/run/gitea/app.ini" repository.upload TEMP_PATH "/run/gitea/tmp/uploads"
|
||||||
crudini --set "/run/gitea/app.ini" mailer HOST "${CLOUDRON_MAIL_SMTP_SERVER}:${CLOUDRON_MAIL_SMTPS_PORT}"
|
crudini --set "/run/gitea/app.ini" mailer SMTP_ADDR "${CLOUDRON_MAIL_SMTP_SERVER}"
|
||||||
|
crudini --set "/run/gitea/app.ini" mailer SMTP_PORT "${CLOUDRON_MAIL_SMTPS_PORT}"
|
||||||
|
crudini --set "/run/gitea/app.ini" mailer PROTOCOL smtps
|
||||||
crudini --set "/run/gitea/app.ini" mailer USER "${CLOUDRON_MAIL_SMTP_USERNAME}"
|
crudini --set "/run/gitea/app.ini" mailer USER "${CLOUDRON_MAIL_SMTP_USERNAME}"
|
||||||
crudini --set "/run/gitea/app.ini" mailer PASSWD "${CLOUDRON_MAIL_SMTP_PASSWORD}"
|
crudini --set "/run/gitea/app.ini" mailer PASSWD "${CLOUDRON_MAIL_SMTP_PASSWORD}"
|
||||||
crudini --set "/run/gitea/app.ini" mailer FROM "${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Gitea} <${CLOUDRON_MAIL_FROM}>"
|
crudini --set "/run/gitea/app.ini" mailer FROM "${CLOUDRON_MAIL_FROM_DISPLAY_NAME:-Gitea} <${CLOUDRON_MAIL_FROM}>"
|
||||||
crudini --set "/run/gitea/app.ini" mailer SKIP_VERIFY "true"
|
crudini --set "/run/gitea/app.ini" mailer FORCE_TRUST_SERVER_CERT "true"
|
||||||
crudini --set "/run/gitea/app.ini" security INSTALL_LOCK "true"
|
crudini --set "/run/gitea/app.ini" security INSTALL_LOCK "true"
|
||||||
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_LIMIT 1
|
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_LIMIT 1
|
||||||
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_TRUSTED_PROXIES "*"
|
crudini --set "/run/gitea/app.ini" security REVERSE_PROXY_TRUSTED_PROXIES "*"
|
||||||
|
30
test/package-lock.json
generated
30
test/package-lock.json
generated
@@ -9,7 +9,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chromedriver": "^114.0.2",
|
"chromedriver": "^115.0.0",
|
||||||
"expect.js": "^0.3.1",
|
"expect.js": "^0.3.1",
|
||||||
"mocha": "^10.2.0",
|
"mocha": "^10.2.0",
|
||||||
"selenium-webdriver": "^4.10.0",
|
"selenium-webdriver": "^4.10.0",
|
||||||
@@ -236,14 +236,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/chromedriver": {
|
"node_modules/chromedriver": {
|
||||||
"version": "114.0.2",
|
"version": "115.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-114.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-115.0.0.tgz",
|
||||||
"integrity": "sha512-v0qrXRBknbxqmtklG7RWOe3TJ/dLaHhtB0jVxE7BAdYERxUjEaNRyqBwoGgVfQDibHCB0swzvzsj158nnfPgZw==",
|
"integrity": "sha512-mkPL+sXMLMUenoXCiKREw+cBl3ibfhiWxkiv9ByIPpqtrrInCt9zKdOolAsbmN/ndlH51WtT5ukUKbeRdrpikg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@testim/chrome-version": "^1.1.3",
|
"@testim/chrome-version": "^1.1.3",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"compare-versions": "^5.0.3",
|
"compare-versions": "^6.0.0",
|
||||||
"extract-zip": "^2.0.1",
|
"extract-zip": "^2.0.1",
|
||||||
"https-proxy-agent": "^5.0.1",
|
"https-proxy-agent": "^5.0.1",
|
||||||
"proxy-from-env": "^1.1.0",
|
"proxy-from-env": "^1.1.0",
|
||||||
@@ -294,9 +294,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/compare-versions": {
|
"node_modules/compare-versions": {
|
||||||
"version": "5.0.3",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.0.0.tgz",
|
||||||
"integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A=="
|
"integrity": "sha512-s2MzYxfRsE9f/ow8hjn7ysa7pod1xhHdQMsgiJtKx6XSNf4x2N1KG4fjrkUmXcP/e9Y2ZX4zB6sHIso0Lm6evQ=="
|
||||||
},
|
},
|
||||||
"node_modules/component-emitter": {
|
"node_modules/component-emitter": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
@@ -1657,13 +1657,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chromedriver": {
|
"chromedriver": {
|
||||||
"version": "114.0.2",
|
"version": "115.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-114.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-115.0.0.tgz",
|
||||||
"integrity": "sha512-v0qrXRBknbxqmtklG7RWOe3TJ/dLaHhtB0jVxE7BAdYERxUjEaNRyqBwoGgVfQDibHCB0swzvzsj158nnfPgZw==",
|
"integrity": "sha512-mkPL+sXMLMUenoXCiKREw+cBl3ibfhiWxkiv9ByIPpqtrrInCt9zKdOolAsbmN/ndlH51WtT5ukUKbeRdrpikg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@testim/chrome-version": "^1.1.3",
|
"@testim/chrome-version": "^1.1.3",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"compare-versions": "^5.0.3",
|
"compare-versions": "^6.0.0",
|
||||||
"extract-zip": "^2.0.1",
|
"extract-zip": "^2.0.1",
|
||||||
"https-proxy-agent": "^5.0.1",
|
"https-proxy-agent": "^5.0.1",
|
||||||
"proxy-from-env": "^1.1.0",
|
"proxy-from-env": "^1.1.0",
|
||||||
@@ -1702,9 +1702,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compare-versions": {
|
"compare-versions": {
|
||||||
"version": "5.0.3",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.0.0.tgz",
|
||||||
"integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A=="
|
"integrity": "sha512-s2MzYxfRsE9f/ow8hjn7ysa7pod1xhHdQMsgiJtKx6XSNf4x2N1KG4fjrkUmXcP/e9Y2ZX4zB6sHIso0Lm6evQ=="
|
||||||
},
|
},
|
||||||
"component-emitter": {
|
"component-emitter": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chromedriver": "^114.0.2",
|
"chromedriver": "^115.0.0",
|
||||||
"expect.js": "^0.3.1",
|
"expect.js": "^0.3.1",
|
||||||
"mocha": "^10.2.0",
|
"mocha": "^10.2.0",
|
||||||
"selenium-webdriver": "^4.10.0",
|
"selenium-webdriver": "^4.10.0",
|
||||||
|
29
test/test.js
29
test/test.js
@@ -27,20 +27,19 @@ if (!process.env.USERNAME || !process.env.PASSWORD || !process.env.EMAIL) {
|
|||||||
describe('Application life cycle test', function () {
|
describe('Application life cycle test', function () {
|
||||||
this.timeout(0);
|
this.timeout(0);
|
||||||
|
|
||||||
var TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 5000;
|
const TIMEOUT = parseInt(process.env.TIMEOUT, 10) || 5000;
|
||||||
var EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
||||||
var LOCATION = 'test';
|
const LOCATION = 'test';
|
||||||
var SSH_PORT = 29420;
|
const SSH_PORT = 29420;
|
||||||
|
|
||||||
var app;
|
let app, browser;
|
||||||
var browser;
|
|
||||||
|
|
||||||
var repodir = '/tmp/testrepo';
|
const repodir = '/tmp/testrepo';
|
||||||
var reponame = 'testrepo';
|
const reponame = 'testrepo';
|
||||||
|
|
||||||
var username = process.env.USERNAME;
|
const username = process.env.USERNAME;
|
||||||
var password = process.env.PASSWORD;
|
const password = process.env.PASSWORD;
|
||||||
var email = process.env.EMAIL;
|
const email = process.env.EMAIL;
|
||||||
|
|
||||||
before(function () {
|
before(function () {
|
||||||
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
|
browser = new Builder().forBrowser('chrome').setChromeOptions(new Options().windowSize({ width: 1280, height: 1024 })).build();
|
||||||
@@ -116,7 +115,7 @@ describe('Application life cycle test', function () {
|
|||||||
await browser.findElement(By.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
|
await browser.findElement(By.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
|
||||||
var button = browser.findElement(By.xpath('//button[contains(text(), "Add Key")]'));
|
var button = browser.findElement(By.xpath('//button[contains(text(), "Add Key")]'));
|
||||||
await browser.executeScript('arguments[0].scrollIntoView(false)', button);
|
await browser.executeScript('arguments[0].scrollIntoView(false)', button);
|
||||||
await browser.findElement(By.xpath('//button[contains(text(), "Add Key")]')).click();
|
await browser.findElement(By.xpath('//button[contains(text(), "Add Key") and contains(@class, "green")]')).click();
|
||||||
|
|
||||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
|
||||||
}
|
}
|
||||||
@@ -167,11 +166,11 @@ describe('Application life cycle test', function () {
|
|||||||
async function sendMail() {
|
async function sendMail() {
|
||||||
await browser.get(`https://${app.fqdn}/admin/config`);
|
await browser.get(`https://${app.fqdn}/admin/config`);
|
||||||
|
|
||||||
var button = await browser.findElement(By.xpath('//button[@id="test-mail-btn"]'));
|
var button = await browser.findElement(By.xpath('//button[contains(text(), "Send")]'));
|
||||||
await browser.executeScript('arguments[0].scrollIntoView(true)', button);
|
await browser.executeScript('arguments[0].scrollIntoView(true)', button);
|
||||||
await browser.findElement(By.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io');
|
await browser.findElement(By.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io');
|
||||||
await browser.findElement(By.xpath('//button[@id="test-mail-btn"]')).click();
|
await browser.findElement(By.xpath('//button[contains(text(), "Send")]')).click();
|
||||||
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(),"A testing email has been sent to \'test@cloudron.io\'")]')), TIMEOUT);
|
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "A testing email has been sent")]')), TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
|
xit('build app', function () { execSync('cloudron build', EXEC_ARGS); });
|
||||||
|
Reference in New Issue
Block a user