1
0
mirror of https://git.cloudron.io/cloudron/gitea-app synced 2025-09-26 15:07:25 +00:00

Compare commits

...

5 Commits

Author SHA1 Message Date
Package Updates
afc6c1a336 Update package version to 1.34.1 2025-01-10 09:17:06 +00:00
Renovate Bot
856e8ffded chore(deps): update dependency go-gitea/gitea to v1.23.1
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.23.0 | 1.23.1 |
2025-01-10 08:46:05 +00:00
Package Updates
0e8051524b Update package version to 1.34.0 2025-01-09 11:26:55 +00:00
Girish Ramakrishnan
343c4f4487 Fix tests 2025-01-09 12:17:46 +01:00
Renovate Bot
fa8b746489 chore(deps): update dependency go-gitea/gitea to v1.23.0
| datasource      | package        | from   | to     |
| --------------- | -------------- | ------ | ------ |
| github-releases | go-gitea/gitea | 1.22.6 | 1.23.0 |
2025-01-09 08:44:12 +00:00
6 changed files with 38 additions and 37 deletions

View File

@@ -1674,3 +1674,19 @@
* Add missing two sync feed for refs/pull ([#​32815](https://github.com/go-gitea/gitea/issues/32815)) * Add missing two sync feed for refs/pull ([#​32815](https://github.com/go-gitea/gitea/issues/32815))
* Avoid MacOS keychain dialog in integration tests ([#​32813](https://github.com/go-gitea/gitea/issues/32813)) ([#​32816](https://github.com/go-gitea/gitea/issues/32816)) * Avoid MacOS keychain dialog in integration tests ([#​32813](https://github.com/go-gitea/gitea/issues/32813)) ([#​32816](https://github.com/go-gitea/gitea/issues/32816))
[1.34.0]
* Update gitea to 1.23.0
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.0)
* Rename config option `[camo].Allways` to `[camo].Always` ([#​32097](https://github.com/go-gitea/gitea/issues/32097))
* Remove SHA1 for support for SSH RSA signing ([#​31857](https://github.com/go-gitea/gitea/issues/31857))
* Use UTC as the default timezone when scheduling Actions cron tasks ([#​31742](https://github.com/go-gitea/gitea/issues/31742))
* Delete Actions logs older than 1 year by default ([#​31735](https://github.com/go-gitea/gitea/issues/31735))
* Make OIDC introspection authentication strictly require Client ID and secret ([#​31632](https://github.com/go-gitea/gitea/issues/31632))
* Include file extension checks in attachment API ([#​32151](https://github.com/go-gitea/gitea/issues/32151))
[1.34.1]
* Update gitea to 1.23.1
* [Full Changelog](https://github.com/go-gitea/gitea/releases/tag/v1.23.1)
* Move repo size to sidebar ([#​33155](https://github.com/go-gitea/gitea/issues/33155))
* Fix editor markdown not incrementing in a numbered list ([#​33187](https://github.com/go-gitea/gitea/issues/33187)) [#​33193](https://github.com/go-gitea/gitea/issues/33193)

View File

@@ -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.33.6", "version": "1.34.1",
"upstreamVersion": "1.22.6", "upstreamVersion": "1.23.1",
"healthCheckPath": "/explore", "healthCheckPath": "/explore",
"httpPort": 3000, "httpPort": 3000,
"memoryLimit": 536870912, "memoryLimit": 536870912,

View File

@@ -20,7 +20,7 @@ WORKDIR /home/git
ENV GNUPGHOME="/app/data/gnupg" ENV GNUPGHOME="/app/data/gnupg"
# renovate: datasource=github-releases depName=go-gitea/gitea versioning=semver extractVersion=^v(?<version>.+)$ # renovate: datasource=github-releases depName=go-gitea/gitea versioning=semver extractVersion=^v(?<version>.+)$
ARG GITEA_VERSION=1.22.6 ARG GITEA_VERSION=1.23.1
RUN curl -L https://dl.gitea.io/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64 -o /home/git/gitea/gitea \ RUN curl -L https://dl.gitea.io/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64 -o /home/git/gitea/gitea \
&& chmod +x /home/git/gitea/gitea && chmod +x /home/git/gitea/gitea

14
test/package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^131.0.3", "chromedriver": "^131.0.5",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^11.0.1", "mocha": "^11.0.1",
"selenium-webdriver": "^4.27.0", "selenium-webdriver": "^4.27.0",
@@ -380,9 +380,9 @@
} }
}, },
"node_modules/chromedriver": { "node_modules/chromedriver": {
"version": "131.0.3", "version": "131.0.5",
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.3.tgz", "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.5.tgz",
"integrity": "sha512-DKHFt0ilcA/RJzY1ApBiJAil6fh08f9mXM8XbdDE1u+S1V5YVUNTUi4bOtJFZoAwS9nlV0H5W6InWrpXqSs2xg==", "integrity": "sha512-OQY4BHUe9JedxH4aAsPZJcf8Y0lMlE7y+3tiCvQSCQ6qDz2b99R0qsqyqzUUSW2DFx0bg4YxmK8CDVMKb9u5kg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
@@ -2374,9 +2374,9 @@
} }
}, },
"chromedriver": { "chromedriver": {
"version": "131.0.3", "version": "131.0.5",
"resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.3.tgz", "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-131.0.5.tgz",
"integrity": "sha512-DKHFt0ilcA/RJzY1ApBiJAil6fh08f9mXM8XbdDE1u+S1V5YVUNTUi4bOtJFZoAwS9nlV0H5W6InWrpXqSs2xg==", "integrity": "sha512-OQY4BHUe9JedxH4aAsPZJcf8Y0lMlE7y+3tiCvQSCQ6qDz2b99R0qsqyqzUUSW2DFx0bg4YxmK8CDVMKb9u5kg==",
"requires": { "requires": {
"@testim/chrome-version": "^1.1.4", "@testim/chrome-version": "^1.1.4",
"axios": "^1.7.4", "axios": "^1.7.4",

View File

@@ -9,7 +9,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"chromedriver": "^131.0.3", "chromedriver": "^131.0.5",
"expect.js": "^0.3.1", "expect.js": "^0.3.1",
"mocha": "^11.0.1", "mocha": "^11.0.1",
"selenium-webdriver": "^4.27.0", "selenium-webdriver": "^4.27.0",

View File

@@ -29,7 +29,6 @@ describe('Application life cycle test', function () {
const SSH_PORT = 29420; const SSH_PORT = 29420;
let app, browser; let app, browser;
let athenticated_by_oidc = false;
const repodir = '/tmp/testrepo'; const repodir = '/tmp/testrepo';
const reponame = 'testrepo'; const reponame = 'testrepo';
@@ -108,7 +107,7 @@ describe('Application life cycle test', function () {
await login('root', 'changeme'); await login('root', 'changeme');
} }
async function loginOIDC(username, password) { async function loginOIDC(username, password, alreadyAuthenticated = true) {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
await browser.get(`https://${app.fqdn}/user/login`); await browser.get(`https://${app.fqdn}/user/login`);
await browser.sleep(2000); await browser.sleep(2000);
@@ -117,15 +116,13 @@ describe('Application life cycle test', function () {
await browser.findElement(By.xpath('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]')).click(); await browser.findElement(By.xpath('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]')).click();
await browser.sleep(2000); await browser.sleep(2000);
if (!athenticated_by_oidc) { if (!alreadyAuthenticated) {
await waitForElement(By.xpath('//input[@name="username"]')); await waitForElement(By.id('inputUsername'));
await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(username); await browser.findElement(By.id('inputUsername')).sendKeys(username);
await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(password); await browser.findElement(By.id('inputPassword')).sendKeys(password);
await browser.sleep(2000); await browser.sleep(2000);
await browser.findElement(By.id('loginSubmitButton')).click(); await browser.findElement(By.id('loginSubmitButton')).click();
await browser.sleep(2000); await browser.sleep(2000);
athenticated_by_oidc = true;
} }
await waitForElement(By.xpath('//img[contains(@class, "avatar")]')); await waitForElement(By.xpath('//img[contains(@class, "avatar")]'));
@@ -173,14 +170,6 @@ describe('Application life cycle test', function () {
}, TIMEOUT); }, TIMEOUT);
} }
async function checkCloneUrl() {
await browser.get('https://' + app.fqdn + '/' + username + '/' + reponame);
await browser.findElement(By.id('repo-clone-ssh')).click();
var cloneUrl = await browser.findElement(By.id('repo-clone-url')).getAttribute('value');
expect(cloneUrl).to.be(`ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git`);
}
function cloneRepo() { function cloneRepo() {
fs.rmSync(repodir, { recursive: true, force: true }); fs.rmSync(repodir, { recursive: true, force: true });
var env = Object.create(process.env); var env = Object.create(process.env);
@@ -201,13 +190,13 @@ 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`);
await browser.sleep(3000);
var button = await browser.findElement(By.xpath('//button[contains(text(), "Send")]')); const button = await browser.findElement(By.xpath('//button[contains(., "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[contains(text(), "Send")]')).click(); await browser.findElement(By.xpath('//button[contains(., "Send")]')).click();
await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "A testing email has been sent")]')), TIMEOUT); await browser.wait(until.elementLocated(By.xpath('//p[contains(., "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); });
@@ -219,7 +208,7 @@ describe('Application life cycle test', function () {
it('can send mail', sendMail); it('can send mail', sendMail);
it('can logout', logout); it('can logout', logout);
it('can login', loginOIDC.bind(null, username, password)); it('can login', loginOIDC.bind(null, username, password, false));
it('can set avatar', setAvatar); it('can set avatar', setAvatar);
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
@@ -227,8 +216,6 @@ describe('Application life cycle test', function () {
it('can create repo', createRepo); it('can create repo', createRepo);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('can add and push a file', pushFile); it('can add and push a file', pushFile);
@@ -236,7 +223,6 @@ describe('Application life cycle test', function () {
it('can restart app', function () { execSync('cloudron restart --app ' + app.id); }); it('can restart app', function () { execSync('cloudron restart --app ' + app.id); });
xit('can login', loginOIDC.bind(null, username, password)); // no need to relogin since session persists xit('can login', loginOIDC.bind(null, username, password)); // no need to relogin since session persists
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in repo', fileExists); it('file exists in repo', fileExists);
@@ -259,7 +245,6 @@ describe('Application life cycle test', function () {
it('can login', loginOIDC.bind(null, username, password)); it('can login', loginOIDC.bind(null, username, password));
it('can get avatar', checkAvatar); it('can get avatar', checkAvatar);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo); it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); }); it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); });