Skip to content

Commit 3b6e773

Browse files
authored
fix(2858): Bitbucket - Users without access to a SCM repo can manage the associated pipeline in Screwdriver (#87)
1 parent d7a3280 commit 3b6e773

File tree

2 files changed

+35
-110
lines changed

2 files changed

+35
-110
lines changed

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,10 +644,10 @@ class BitbucketScm extends Scm {
644644
* @param {String} config.token The token used to authenticate to the SCM
645645
* @return {Promise} Resolves to permissions object with admin, push, pull
646646
*/
647-
async _getPermissions({ scmUri }) {
647+
async _getPermissions(config) {
648+
const { scmUri, token } = config;
648649
const scm = getScmUriParts(scmUri);
649650
const [owner, uuid] = scm.repoId.split('/');
650-
const token = await this._getToken();
651651

652652
try {
653653
// First, check to see if the repository exists

test/index.test.js

Lines changed: 33 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -924,139 +924,64 @@ describe('index', function () {
924924
});
925925

926926
describe('_getPermissions', () => {
927-
const repos = [
928-
{
929-
url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix`,
930-
method: 'GET',
931-
context: {
932-
token: systemToken
933-
}
934-
},
935-
{
936-
url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix1`,
937-
method: 'GET',
938-
context: {
939-
token: systemToken
940-
}
941-
},
942-
{
943-
url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix2`,
944-
method: 'GET',
945-
context: {
946-
token: systemToken
947-
}
948-
},
949-
{
950-
url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix3`,
951-
method: 'GET',
952-
context: {
953-
token: systemToken
954-
}
955-
},
956-
{
957-
url: `${API_URL_V2}/repositories/repoIdPrefix/fake`,
958-
method: 'GET',
959-
context: {
960-
token: systemToken
961-
}
927+
const baseRequestOptions = {
928+
method: 'GET',
929+
context: {
930+
token
962931
}
932+
};
933+
const repos = [
934+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix` },
935+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix1` },
936+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix2` },
937+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix/repoIdSuffix3` },
938+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix/fake` }
963939
];
964940

965941
const pull = {
966-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22`,
967-
method: 'GET',
968-
context: {
969-
token: systemToken
970-
}
942+
...baseRequestOptions,
943+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22`
971944
};
972945
const pulls = [
973-
{
974-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22`,
975-
method: 'GET',
976-
context: {
977-
token: systemToken
978-
}
979-
},
980-
{
981-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22`,
982-
method: 'GET',
983-
context: {
984-
token: systemToken
985-
}
986-
},
987-
{
988-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22`,
989-
method: 'GET',
990-
context: {
991-
token: systemToken
992-
}
993-
},
994-
{
995-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22`,
996-
method: 'GET',
997-
context: {
998-
token: systemToken
999-
}
1000-
}
946+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22` },
947+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22` },
948+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22` },
949+
{ ...baseRequestOptions, url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22` }
1001950
];
1002951
const pushes = [
1003952
{
1004-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22&role=contributor`,
1005-
method: 'GET',
1006-
context: {
1007-
token: systemToken
1008-
}
953+
...baseRequestOptions,
954+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22&role=contributor`
1009955
},
1010956
{
1011-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22&role=contributor`,
1012-
method: 'GET',
1013-
context: {
1014-
token: systemToken
1015-
}
957+
...baseRequestOptions,
958+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22&role=contributor`
1016959
},
1017960
{
1018-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22&role=contributor`,
1019-
method: 'GET',
1020-
context: {
1021-
token: systemToken
1022-
}
961+
...baseRequestOptions,
962+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22&role=contributor`
1023963
},
1024964
{
1025-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22&role=contributor`,
1026-
method: 'GET',
1027-
context: {
1028-
token: systemToken
1029-
}
965+
...baseRequestOptions,
966+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22&role=contributor`
1030967
}
1031968
];
1032969
const admins = [
1033970
{
1034-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22&role=admin`,
1035-
method: 'GET',
1036-
context: {
1037-
token: systemToken
1038-
}
971+
...baseRequestOptions,
972+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix%22&role=admin`
1039973
},
1040974
{
1041-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22&role=admin`,
1042-
method: 'GET',
1043-
context: {
1044-
token: systemToken
1045-
}
975+
...baseRequestOptions,
976+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix1%22&role=admin`
1046977
},
1047978
{
1048-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22&role=admin`,
1049-
method: 'GET',
1050-
context: {
1051-
token: systemToken
1052-
}
979+
...baseRequestOptions,
980+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix2%22&role=admin`
1053981
},
1054982
{
1055-
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22&role=admin`,
1056-
method: 'GET',
1057-
context: {
1058-
token: systemToken
1059-
}
983+
...baseRequestOptions,
984+
url: `${API_URL_V2}/repositories/repoIdPrefix?q=uuid%3D%22repoIdSuffix3%22&role=admin`
1060985
}
1061986
];
1062987

0 commit comments

Comments
 (0)