Skip to content
Snippets Groups Projects
Commit e469cf1a authored by Hutson Betts's avatar Hutson Betts Committed by Rhys Arkins
Browse files

feat(gitlab): ignore archived repositories (#2461)

Ignore archived GitLab repositories.

Closes #2437
parent 61466b71
No related branches found
No related tags found
No related merge requests found
...@@ -106,8 +106,15 @@ async function initRepo({ repository, token, endpoint, gitAuthor }) { ...@@ -106,8 +106,15 @@ async function initRepo({ repository, token, endpoint, gitAuthor }) {
throw new Error('Invalid gitAuthor'); throw new Error('Invalid gitAuthor');
} }
} }
let res;
try { try {
const res = await get(`projects/${config.repository}`); res = await get(`projects/${config.repository}`);
if (res.body.archived) {
logger.info(
'Repository is archived - throwing error to abort renovation'
);
throw new Error('archived');
}
config.defaultBranch = res.body.default_branch; config.defaultBranch = res.body.default_branch;
config.baseBranch = config.defaultBranch; config.baseBranch = config.defaultBranch;
logger.debug(`${repository} default branch = ${config.baseBranch}`); logger.debug(`${repository} default branch = ${config.baseBranch}`);
...@@ -117,7 +124,14 @@ async function initRepo({ repository, token, endpoint, gitAuthor }) { ...@@ -117,7 +124,14 @@ async function initRepo({ repository, token, endpoint, gitAuthor }) {
delete config.fileList; delete config.fileList;
await Promise.all([getPrList(), getFileList()]); await Promise.all([getPrList(), getFileList()]);
} catch (err) { } catch (err) {
logger.error({ err }, `GitLab init error`); logger.debug('Caught initRepo error');
if (err.message === 'archived') {
throw err;
}
logger.info(
{ err, message: err.message, body: res ? res.body : undefined },
'Unknown GitLab initRepo error'
);
throw err; throw err;
} }
return {}; return {};
......
...@@ -142,6 +142,16 @@ describe('platform/gitlab', () => { ...@@ -142,6 +142,16 @@ describe('platform/gitlab', () => {
} }
expect(err.message).toBe('always error'); expect(err.message).toBe('always error');
}); });
it('should throw an error if repository is archived', async () => {
get.mockReturnValue({ body: { archived: true } });
let err;
try {
await gitlab.initRepo({ repository: 'some/repo', token: 'sometoken' });
} catch (e) {
err = e;
}
expect(err.message).toBe('archived');
});
}); });
describe('getRepoForceRebase', () => { describe('getRepoForceRebase', () => {
it('should return false', () => { it('should return false', () => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment