Skip to content

Commit 4380dac

Browse files
feat: Release feature branch (#188)
BREAKING CHANGE: Storing profiles in config file instead of keytar.
1 parent 5b6a3a5 commit 4380dac

File tree

8 files changed

+384
-53
lines changed

8 files changed

+384
-53
lines changed

.github/workflows/release.yml

+4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/checkout@v2
20+
- name: Extract branch name
21+
id: extract_branch
22+
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
2023
- name: Slack Notification
24+
if: ${{steps.extract_branch.outputs.branch == 'main' }}
2125
uses: rtCamp/action-slack-notify@v2
2226
env:
2327
SLACK_WEBHOOK: ${{ secrets.SLACK_WEB_HOOK }}

.releaserc.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"branches": [
33
"main",
44
{
5-
"name": "release_feature_branch",
5+
"name": "release-feature-branch",
66
"prerelease": "rc"
77
}
88
],

CHANGES.md

+77
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,83 @@
160160
- Add `AudioOnly` to create room
161161

162162

163+
### [5.27.1-rc.1](https://github.com/twilio/twilio-cli-core/compare/5.25.0-rc.1...5.27.1-rc.1) (2021-11-12)
164+
165+
166+
### Library - Fixes
167+
168+
* Removed change to stop publish from npm. ([#175](https://github.com/twilio/twilio-cli-core/issues/175)) ([a819b6c](https://github.com/twilio/twilio-cli-core/commit/a819b6c98cbfe99e77664a2efdac28c63e9218cc))
169+
170+
## [5.25.0-rc.1](https://github.com/twilio/twilio-cli-core/compare/5.24.0...5.25.0-rc.1) (2021-11-03)
171+
172+
173+
### Library - Chores
174+
175+
* CLI Profile Remove - Check and Use config file before checking system keychain. ([#126](https://github.com/twilio/twilio-cli-core/issues/126)) ([e326a31](https://github.com/twilio/twilio-cli-core/commit/e326a3195ff9bab2437671f61a4dcdfba15c6100))
176+
* Refactor profiles usage to projects ([#122](https://github.com/twilio/twilio-cli-core/issues/122)) ([782f6c5](https://github.com/twilio/twilio-cli-core/commit/782f6c50dfb7d2e00df52ef75dfd3e94bc45581c))
177+
* refactor the Twilio vendor extensions into single object ([#125](https://github.com/twilio/twilio-cli-core/issues/125)) ([a2e0fca](https://github.com/twilio/twilio-cli-core/commit/a2e0fca112eccf954d86095af4809445042d1bb6))
178+
* Store API Keys in Config File ([#124](https://github.com/twilio/twilio-cli-core/issues/124)) ([9fb9dd3](https://github.com/twilio/twilio-cli-core/commit/9fb9dd394b85dba6185b4a2033bf822c72d5c94a))
179+
180+
181+
### Library - Fixes
182+
183+
* Removed the comment. ([95d4fa4](https://github.com/twilio/twilio-cli-core/commit/95d4fa487886cc05efa75effc38e315d0393ef7c))
184+
* Update release-feature-branch with main ([#137](https://github.com/twilio/twilio-cli-core/issues/137)) ([46c4156](https://github.com/twilio/twilio-cli-core/commit/46c415631e74ab1bcac460299a65532211cb2347)), closes [#130](https://github.com/twilio/twilio-cli-core/issues/130)
185+
186+
187+
### Library - Features
188+
189+
* Added support to make profile input mandatory based on config property ([#135](https://github.com/twilio/twilio-cli-core/issues/135)) ([fbdc36b](https://github.com/twilio/twilio-cli-core/commit/fbdc36ba99be611dcaf5d08e8697a42e2256b59e))
190+
* Merging master into release-feature-branch ([#172](https://github.com/twilio/twilio-cli-core/issues/172)) ([48313d2](https://github.com/twilio/twilio-cli-core/commit/48313d27844d1cf6f5435150deb1e777314cba04)), closes [#130](https://github.com/twilio/twilio-cli-core/issues/130) [#136](https://github.com/twilio/twilio-cli-core/issues/136) [#139](https://github.com/twilio/twilio-cli-core/issues/139) [#138](https://github.com/twilio/twilio-cli-core/issues/138) [#140](https://github.com/twilio/twilio-cli-core/issues/140) [#142](https://github.com/twilio/twilio-cli-core/issues/142) [#145](https://github.com/twilio/twilio-cli-core/issues/145) [#150](https://github.com/twilio/twilio-cli-core/issues/150) [#154](https://github.com/twilio/twilio-cli-core/issues/154) [#156](https://github.com/twilio/twilio-cli-core/issues/156) [#150](https://github.com/twilio/twilio-cli-core/issues/150) [#157](https://github.com/twilio/twilio-cli-core/issues/157) [#158](https://github.com/twilio/twilio-cli-core/issues/158) [#155](https://github.com/twilio/twilio-cli-core/issues/155) [#161](https://github.com/twilio/twilio-cli-core/issues/161) [#157](https://github.com/twilio/twilio-cli-core/issues/157) [#155](https://github.com/twilio/twilio-cli-core/issues/155) [#165](https://github.com/twilio/twilio-cli-core/issues/165) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#164](https://github.com/twilio/twilio-cli-core/issues/164) [#165](https://github.com/twilio/twilio-cli-core/issues/165) [#164](https://github.com/twilio/twilio-cli-core/issues/164) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#168](https://github.com/twilio/twilio-cli-core/issues/168) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#168](https://github.com/twilio/twilio-cli-core/issues/168) [#169](https://github.com/twilio/twilio-cli-core/issues/169) [#135](https://github.com/twilio/twilio-cli-core/issues/135) [#164](https://github.com/twilio/twilio-cli-core/issues/164) [#150](https://github.com/twilio/twilio-cli-core/issues/150) [#165](https://github.com/twilio/twilio-cli-core/issues/165) [#155](https://github.com/twilio/twilio-cli-core/issues/155) [#169](https://github.com/twilio/twilio-cli-core/issues/169) [#145](https://github.com/twilio/twilio-cli-core/issues/145) [#126](https://github.com/twilio/twilio-cli-core/issues/126) [#122](https://github.com/twilio/twilio-cli-core/issues/122) [#150](https://github.com/twilio/twilio-cli-core/issues/150) [#157](https://github.com/twilio/twilio-cli-core/issues/157) [#155](https://github.com/twilio/twilio-cli-core/issues/155) [#165](https://github.com/twilio/twilio-cli-core/issues/165) [#164](https://github.com/twilio/twilio-cli-core/issues/164) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#168](https://github.com/twilio/twilio-cli-core/issues/168) [#124](https://github.com/twilio/twilio-cli-core/issues/124) [#157](https://github.com/twilio/twilio-cli-core/issues/157) [#166](https://github.com/twilio/twilio-cli-core/issues/166) [#168](https://github.com/twilio/twilio-cli-core/issues/168) [#130](https://github.com/twilio/twilio-cli-core/issues/130)
191+
192+
## [5.29.0-rc.1](https://github.com/shamantraghav/twilio-cli-core/compare/5.28.0...5.29.0-rc.1) (2021-10-27)
193+
194+
195+
### Library - Features
196+
197+
* Added support to make profile input mandatory based on config property ([#135](https://github.com/shamantraghav/twilio-cli-core/issues/135)) ([fbdc36b](https://github.com/shamantraghav/twilio-cli-core/commit/fbdc36ba99be611dcaf5d08e8697a42e2256b59e))
198+
* Added the github actions to send the slack notifications ([#164](https://github.com/shamantraghav/twilio-cli-core/issues/164)) ([06e2cb1](https://github.com/shamantraghav/twilio-cli-core/commit/06e2cb1e3a8a6eb2486d8575a5da6c5dcbe3708e))
199+
* Enable GitHub actions. ([#150](https://github.com/shamantraghav/twilio-cli-core/issues/150)) ([002dd1f](https://github.com/shamantraghav/twilio-cli-core/commit/002dd1f9593187cd580d7c139609420e5a33317f))
200+
201+
202+
### Library - Chores
203+
204+
* [Snyk] Security upgrade @oclif/plugin-help from 2.2.3 to 3.2.0 ([#165](https://github.com/shamantraghav/twilio-cli-core/issues/165)) ([188120a](https://github.com/shamantraghav/twilio-cli-core/commit/188120a3e323ea07f2e7f26909ec83ac5a03461d))
205+
* Added changes to use scripts instead of community Github actions ([#155](https://github.com/shamantraghav/twilio-cli-core/issues/155)) ([27bd508](https://github.com/shamantraghav/twilio-cli-core/commit/27bd508171b16eaf0036bdff7e0d21117570bf5f))
206+
* Added tests and sonarcloud scan while adding the PR's ([#169](https://github.com/shamantraghav/twilio-cli-core/issues/169)) ([a26d6ee](https://github.com/shamantraghav/twilio-cli-core/commit/a26d6ee81e2a49057581ce0d76b9636295d42f1e))
207+
* Cache processing step for Travis builds ([#145](https://github.com/shamantraghav/twilio-cli-core/issues/145)) ([33cc65d](https://github.com/shamantraghav/twilio-cli-core/commit/33cc65d82412c30f6c9aec40b2c79e43a80d459b))
208+
* CLI Profile Remove - Check and Use config file before checking system keychain. ([#126](https://github.com/shamantraghav/twilio-cli-core/issues/126)) ([e326a31](https://github.com/shamantraghav/twilio-cli-core/commit/e326a3195ff9bab2437671f61a4dcdfba15c6100))
209+
* Refactor profiles usage to projects ([#122](https://github.com/shamantraghav/twilio-cli-core/issues/122)) ([782f6c5](https://github.com/shamantraghav/twilio-cli-core/commit/782f6c50dfb7d2e00df52ef75dfd3e94bc45581c))
210+
* **release:** set `package.json` to 5.29.0 [skip ci] ([8e5a785](https://github.com/shamantraghav/twilio-cli-core/commit/8e5a7851fc12a9ef06683ef9d82284485166b333)), closes [#150](https://github.com/shamantraghav/twilio-cli-core/issues/150)
211+
* **release:** set `package.json` to 5.30.0 [skip ci] ([26e4594](https://github.com/shamantraghav/twilio-cli-core/commit/26e459440a4668903d9593538e637f8726c10525)), closes [#157](https://github.com/shamantraghav/twilio-cli-core/issues/157) [#155](https://github.com/shamantraghav/twilio-cli-core/issues/155)
212+
* **release:** set `package.json` to 5.31.0 [skip ci] ([ad437be](https://github.com/shamantraghav/twilio-cli-core/commit/ad437be6870126db141ddefee9f10a4cb7528728)), closes [#165](https://github.com/shamantraghav/twilio-cli-core/issues/165) [#164](https://github.com/shamantraghav/twilio-cli-core/issues/164)
213+
* **release:** set `package.json` to 5.31.1 [skip ci] ([dc18140](https://github.com/shamantraghav/twilio-cli-core/commit/dc181406a2583d543c719379cc68dafd818efd07)), closes [#166](https://github.com/shamantraghav/twilio-cli-core/issues/166) [#168](https://github.com/shamantraghav/twilio-cli-core/issues/168)
214+
* Store API Keys in Config File ([#124](https://github.com/shamantraghav/twilio-cli-core/issues/124)) ([9fb9dd3](https://github.com/shamantraghav/twilio-cli-core/commit/9fb9dd394b85dba6185b4a2033bf822c72d5c94a))
215+
216+
217+
### Library - Fixes
218+
219+
* fix naming ([#157](https://github.com/shamantraghav/twilio-cli-core/issues/157)) ([d454b81](https://github.com/shamantraghav/twilio-cli-core/commit/d454b811344ae11283e32c13f14e01d9946bfabf))
220+
* Merger main into release feature branch ([fbcd3e8](https://github.com/shamantraghav/twilio-cli-core/commit/fbcd3e82c4a480578a6d2b8561cd0f280ad5cb0d))
221+
* Removed the comment. ([95d4fa4](https://github.com/shamantraghav/twilio-cli-core/commit/95d4fa487886cc05efa75effc38e315d0393ef7c))
222+
* Revert "Resolve sec vulnerability ([#166](https://github.com/shamantraghav/twilio-cli-core/issues/166))" ([#168](https://github.com/shamantraghav/twilio-cli-core/issues/168)) ([7d2a374](https://github.com/shamantraghav/twilio-cli-core/commit/7d2a374b4f5f42106c976616a88d029b2f3bea0a))
223+
* Update release-feature-branch with main ([#137](https://github.com/shamantraghav/twilio-cli-core/issues/137)) ([46c4156](https://github.com/shamantraghav/twilio-cli-core/commit/46c415631e74ab1bcac460299a65532211cb2347)), closes [#130](https://github.com/shamantraghav/twilio-cli-core/issues/130)
224+
* Updated api definitions ([906518f](https://github.com/shamantraghav/twilio-cli-core/commit/906518f5fbdfa154604c5288f4ebd9eaf46a48b3))
225+
226+
---------------------------
227+
**Api**
228+
- Corrected enum values for `emergency_address_status` values in `/IncomingPhoneNumbers` response. **(breaking change)**
229+
- Clarify `emergency_address_status` values in `/IncomingPhoneNumbers` response.
230+
231+
**Messaging**
232+
- Add PUT and List brand vettings api
233+
- Removes beta feature flag based visibility for us_app_to_person_registered and usecase field.Updates test cases to add POLITICAL usecase. **(breaking change)**
234+
- Add brand_feedback as optional field to BrandRegistrations
235+
236+
**Video**
237+
- Add `AudioOnly` to create room
238+
239+
163240
## [5.30.0](https://github.com/twilio/twilio-cli-core/compare/5.29.0...5.30.0) (2021-10-07)
164241

165242

src/base-commands/twilio-client-command.js

+17-4
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,32 @@ class TwilioClientCommand extends BaseCommand {
2424
async run() {
2525
await super.run();
2626

27+
// check if profile flag is required as per the config
28+
if (this.userConfig.requireProfileInput && !this.flags.profile) {
29+
throw new TwilioCliError(
30+
`Error: Missing required flag:\n -p, --profile PROFILE ${TwilioClientCommand.flags.profile.description} To disable this check run:\n\n twilio config:set --no-require-profile-input`,
31+
);
32+
}
2733
this.currentProfile = this.userConfig.getProfileById(this.flags.profile);
2834
let keytarFlag = false;
2935
const pluginName = (this.config.userAgent || ' ').split(' ')[0];
3036

31-
const reportUnconfigured = (verb, message = '') => {
37+
const reportUnconfigured = (verb, message = '', commandName = 'create') => {
3238
const profileParam = this.flags.profile ? ` --profile "${this.flags.profile}"` : '';
33-
throw new TwilioCliError(`To ${verb} the profile, run:\n\n twilio profiles:create${profileParam}${message}`);
39+
throw new TwilioCliError(
40+
`To ${verb} the profile, run:\n\n twilio profiles:${commandName}${profileParam}${message}`,
41+
);
3442
};
3543

3644
if (!this.currentProfile) {
3745
const profileName = this.flags.profile ? ` "${this.flags.profile}"` : '';
38-
this.logger.error(`Could not find profile${profileName}.`);
39-
reportUnconfigured('create', `\n\n${HELP_ENVIRONMENT_VARIABLES}`);
46+
if (Object.keys(this.userConfig.profiles).length !== 0 && !profileName) {
47+
this.logger.error(`There is no active profile set.`);
48+
reportUnconfigured('activate', '', 'use');
49+
} else {
50+
this.logger.error(`Could not find profile${profileName}.`);
51+
reportUnconfigured('create', `\n\n${HELP_ENVIRONMENT_VARIABLES}`);
52+
}
4053
}
4154

4255
this.logger.debug(`Using profile: ${this.currentProfile.id}`);

src/services/config.js

+59-17
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ const MessageTemplates = require('./messaging/templates');
88
const CLI_NAME = 'twilio-cli';
99

1010
class ConfigDataProfile {
11+
constructor(accountSid, region, apiKey, apiSecret) {
12+
this.accountSid = accountSid;
13+
this.region = region;
14+
this.apiKey = apiKey;
15+
this.apiSecret = apiSecret;
16+
}
17+
}
18+
19+
class ConfigDataProject {
1120
constructor(id, accountSid, region) {
1221
this.id = id;
1322
this.accountSid = accountSid;
@@ -20,8 +29,10 @@ class ConfigData {
2029
this.edge = undefined;
2130
this.email = {};
2231
this.prompts = {};
23-
this.profiles = [];
32+
this.projects = [];
2433
this.activeProfile = null;
34+
this.profiles = {};
35+
this.requireProfileInput = undefined;
2536
}
2637

2738
getProfileFromEnvironment() {
@@ -55,6 +66,14 @@ class ConfigData {
5566
return undefined;
5667
}
5768

69+
getProfileFromConfigFileById(profileId) {
70+
let profile = this.profiles[profileId];
71+
if (!profile) {
72+
profile = this.projects.find((p) => p.id === profileId);
73+
}
74+
return profile;
75+
}
76+
5877
getProfileById(profileId) {
5978
let profile;
6079

@@ -66,7 +85,11 @@ class ConfigData {
6685
if (profileId) {
6786
// Clean the profile ID.
6887
profileId = this.sanitize(profileId);
69-
profile = this.profiles.find((p) => p.id === profileId);
88+
profile = this.getProfileFromConfigFileById(profileId);
89+
// Explicitly add `id` to the returned profile
90+
if (profile && !profile.hasOwnProperty('id')) {
91+
profile.id = profileId;
92+
}
7093
} else {
7194
profile = this.getActiveProfile();
7295
}
@@ -90,39 +113,54 @@ class ConfigData {
90113

91114
getActiveProfile() {
92115
let profile;
93-
if (this.profiles.length > 0) {
116+
if (this.projects.length > 0 || Object.keys(this.profiles).length > 0) {
94117
if (this.activeProfile) {
95-
profile = this.profiles.find((p) => p.id === this.activeProfile);
118+
profile = this.getProfileFromConfigFileById(this.activeProfile);
96119
}
120+
97121
if (!profile) {
98-
profile = this.profiles[0];
122+
profile = this.projects[0];
99123
}
100124
}
101125
return profile;
102126
}
103127

104128
removeProfile(profileToRemove) {
105-
this.profiles = this.profiles.filter((profile) => {
106-
return profile.id !== profileToRemove.id;
107-
});
129+
if (this.profiles[profileToRemove.id]) {
130+
delete this.profiles[profileToRemove.id];
131+
} else {
132+
this.projects = this.projects.filter((profile) => {
133+
return profile.id !== profileToRemove.id;
134+
});
135+
}
108136
if (profileToRemove.id === this.activeProfile) {
109137
this.activeProfile = null;
110138
}
111139
}
112140

113-
addProfile(id, accountSid, region) {
114-
// Clean all the inputs.
141+
addProfile(id, accountSid, region, apiKey, apiSecret) {
142+
// Clean all the inputs.
115143
id = this.sanitize(id);
116144
accountSid = this.sanitize(accountSid);
117145
region = this.sanitize(region);
118146

119147
const existing = this.getProfileById(id);
148+
149+
// Remove if existing in historical projects.
120150
if (existing) {
121-
existing.accountSid = accountSid;
122-
existing.region = region;
123-
} else {
124-
this.profiles.push(new ConfigDataProfile(id, accountSid, region));
151+
this.projects = this.projects.filter((p) => p.id !== existing.id);
125152
}
153+
154+
// Update profiles object
155+
this.profiles[id] = new ConfigDataProfile(accountSid, region, apiKey, apiSecret);
156+
}
157+
158+
addProject(id, accountSid, region) {
159+
id = this.sanitize(id);
160+
accountSid = this.sanitize(accountSid);
161+
region = this.sanitize(region);
162+
163+
this.projects.push(new ConfigDataProject(id, accountSid, region));
126164
}
127165

128166
isPromptAcked(promptId) {
@@ -145,10 +183,12 @@ class ConfigData {
145183
loadFromObject(configObj) {
146184
this.edge = configObj.edge;
147185
this.email = configObj.email || {};
186+
this.requireProfileInput = configObj.requireProfileInput;
148187
this.prompts = configObj.prompts || {};
149188
// Note the historical 'projects' naming.
150-
configObj.profiles = configObj.projects || [];
151-
configObj.profiles.forEach((profile) => this.addProfile(profile.id, profile.accountSid, profile.region));
189+
configObj.projects = configObj.projects || [];
190+
configObj.projects.forEach((project) => this.addProject(project.id, project.accountSid, project.region));
191+
this.profiles = configObj.profiles || {};
152192
this.setActiveProfile(configObj.activeProject);
153193
}
154194

@@ -179,9 +219,11 @@ class Config {
179219
configData = {
180220
edge: configData.edge,
181221
email: configData.email,
222+
requireProfileInput: configData.requireProfileInput,
182223
prompts: configData.prompts,
183224
// Note the historical 'projects' naming.
184-
projects: configData.profiles,
225+
projects: configData.projects,
226+
profiles: configData.profiles,
185227
activeProject: configData.activeProfile,
186228
};
187229

src/services/twilio-api/twilio_accounts_v1.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -867,4 +867,4 @@
867867
"name": "GA"
868868
}
869869
]
870-
}
870+
}

0 commit comments

Comments
 (0)