forked from openedx-unsupported/tubular
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
665 lines (664 loc) · 34 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
CHANGES
=======
* escape salesforce api queries
* Revert "Revert "Upgrade moto > 1.0.0, unpin testing dependencies for edx\_lint (#480)" (#484)" (#485)
* Revert "Upgrade moto > 1.0.0, unpin testing dependencies for edx\_lint (#480)" (#484)
* Remove calls to method that does not exist (#483)
* fix click\_log: Attribute error
* Upgrade moto > 1.0.0, unpin testing dependencies for edx\_lint (#480)
* Revert "Updating pycodestyleversion (#472)"
* Revert "Removing merge conflict (#473)"
* Removing merge conflict (#473)
* Updating pycodestyleversion (#472)
* Adding deploy script to deploy gocd agents (#461)
* Adding a tubular pipeline for deploying things with docker instead of legacy agents (#460)
* replace travis with GHA
* update make\_plan for click
* Upgrading from click 6.7 to 7 to fix a collision in gocd20 pipelines that occurs due to a missing separate install of python which causes an unintentional downgrade (#456)
* Bump cryptography from 2.9.2 to 3.2 in /requirements (#455)
* Improving the log hygiene for base amis
* Allow HubspotAPI to send email to marketing upon successful deletion
* ISRE-588 | check most recent log for java socket error (#453)
* ISRE-587 | Adding logic to properly raise multiple image exception er… (#452)
* removed exception
* Revert "Revert "Add ability to grab focal base image for deployment pipelines""
* Revert "Add ability to grab focal base image for deployment pipelines"
* Add ability to grab focal base image for deployment pipelines
* Catch and retry new\_asg on socket exception. (#446)
* Removed deprecated future imports (#445)
* ran 2to3 to remove deprecated imports
* Add option to disable logging 404s as an error (#444)
* Log more info on api error for debugging
* Add license-manager retirement to pipeline
* Fix pylint complaints
* Pin pytest to fix test failures
* Ignore Github Actions Results PSRE-168
* Ignore internal & secure in recent deployers
* OEP-18 compliance
* Add Segment unsuppression API (#435)
* MICROBA-447 | Add logging for demographics retirement
* Fix Segment retirement ID issue (#434)
* MICROBA-447 | Add support for removing user data from Demographics IDA
* Upgrade Acquia Cloud Api endpoints
* MICROBA-391 Allow custom field headings in partner report (#428)
* lint
* making args work?
* Update variable names and comments to be more inclusive (#429)
* more linter love
* lint
* more lint
* lint and errors
* delete extra colon
* added script to setup.cfg
* Tag releases to ensure they are not pruned prematurely
* revise comment
* adding alert\_opsgenie method
* Fix readme, update python versions to match travis, and remove unused AUTHORS file (#424)
* Upgrade the tubular requirements to move to httplib2 0.18.0
* Add retry logic around Salesforce API call
* Remove old comment (#421)
* Ignore the dependabot context on test status
* Add tests in python 3.8
* fix tests
* add retrays to frontend app cloudflare purge cache
* Make cleanup\_asgs.py not wait for ASGs to delete
* Make cleanup\_asgs.py more verbose to aid debugging
* Retry on BackendErro when waiting for task completion
* Backoff on MultipleImagesFoundException
* Add retirement endpoint for pii owned by edx-proctoring (#411)
* move slack token to params
* clean tubular code of the debug statements
* clean tubular code of the debug statements
* slack token
* slack token
* fixed tubular to send messages to slack
* adding logging stmts to slack api
* debug slack
* debug slack
* cut down the asg delete tag
* Fix pylint complaints
* Add no-op mode for testing
* Fix log lines to use format
* Add missing import
* Add exception logging in retrieve\_pull\_requests
* Reraise exception
* Updating message\_pr\_in\_range logging so we can debug what it cannot find
* Fail retirement setup if hubspot key doesn't exist
* Add new Hubspot API to retirement configuration
* Address an inconsistent rebuildability of multisite mfe builds
* Add hubpot API for user retirement
* Fix 'dictionary changed size during iteration' error in gocd\_api.py
* fix bug for retirement partner job in py 35
* Allow for users.noreply.github.com emails that don't have numerical prefixes
* Convert all recent-committer emails to lowercase
* Allow cloudflare purge to be called via cmd line
* Fix test errors from commit 2112f80
* Add cloudflare cache clear script
* Remove date part of edx-pipeline-bot message by default
* Map @user.noreply.github.com emails back to their edx email addresses
* Only use edx.org emails for opsgenie teams
* Supported titles with nesting for better hierarchy
* Format the current timestamp into release wiki titles on request
* Add timeout retry to github repo and org initialization
* Add better error messages when updating recent deployers
* Add a script to fill an opsgenie team with users who had changes recently deployed to a service
* Relax the atlassian-python-api version restriction to resolve requests versions
* Sort requirements.in
* Add an upgrade target to the Makefile
* Don't require jenkins tokens because they aren't both always required
* Revert "Revert "remove old retrieve ami script""
* Revert "remove old retrieve ami script"
* remove old retrieve ami script
* Add tags from current edp back to yaml output
* Switch to https URLs
* Make script executable
* Add symlink
* fix
* fix region
* fix regex
* updated tubular script to build from scratch
* updated tubular script to build from scratch
* Revert "tubular script"
* Revert "debug"
* debug
* fixed script naming
* fixed region
* fixes
* extract latest ami
* extract latest ami
* tubular script
* feat: add npm package aliases to frontend builder (#370)
* Make gocd creds variables/options consistent
* Update Segment API to REST from GraphQL (#368)
* Fix frontend multi build's app config heirarchy
* Remove multi-bucket deployments for MFEs
* Have multideploy MFEs also exist in single bucket
* Output status of each test so you know what failed
* Clarify comment
* Make logger variables consistent
* Style fixes
* Style fixes
* Update test
* Allow advancer to check if ci failed DEVOPS-9053
* Clarify comment
* Taking repo ownership of GoCD (#361)
* Remove python 3.4, no longer supported by PyGithub
* Upgrade PyGithub to fix rate limit detection
* Fix github tests for api rate limit logging
* Fix FE multi-build script paths
* Add new FE multi build and deploy scripts to setup
* Fix more linter errors
* Fix linter errors again
* Fix linter errors
* Move backoff logic into github API library
* Fix jitter
* Make frontend scripts executable
* Fix issues with non-string exception data (#353)
* Allow multisite MFEs to set own app config
* Fix tests broken by PR #350
* Add loggin of backoff and fix jitter
* Add logging of rate limit
* Use the correct set of values for the \_poll\_commit return
* Correctly check the output of \_poll\_commit for success
* Only keep polling while the commit is actually pending
* Actually run the polling function
* Allow for filtering of validations when checking status (and filter the common ones)
* Handle Nones better in in check-suites
* Report commit statuses by using both github statuses and check-suite results
* Upgrade pyyaml to use latest secure release
* Add error log when unable to decode Segment response as JSON
* Update frontend scripts to use hostname
* fix tests
* use key name to terminate gocd instances
* Extend backoff retries to Segment auth calls (#338)
* Make seperate FE build and deploy scripts for multisite
* Mark as Python 3.6 compliant
* Make partner report cleanup respect environment (#335)
* Fix bugs in partner report cleanup script, increase debug output (#333)
* Update messages for jenkins job
* Added messages for jenkins job
* Add logging for failed wiki page creation
* Retry Segment auth errors, bubble up auth error messages
* Allow Segment error messages to bubble up
* Fix csv writer for username replacement
* Add symlink for replace\_usernames script
* Add username replacement script
* Fix the Proctoring retirement call
* [retirement archiver] Make S3 credentials optional
* add salesforce api and calls to retire user
* Add link to slack room for debugging e2e failures
* Added method to call the edx\_proctoring endpoint for deleting proctoring data
* Remove name from AUTHORS
* Change name in AUTHORS
* Update README to add new Sailthru max attempts env var
* Add retrying to the Sailthru delete\_user API call
* Use specified region when connecting to S3 bucket
* Add option for common environment variable file to frontend build script
* Determine AMI by ASG only
* Remove elb options, make detection automatic
* Add no-elb mode to retrieve\_base\_ami.py OPS-3639
* Cleanup/fix click options to be mandatory
* fix release advancer
* Differentiate between required/optional segment user ID keys
* Add delete\_learner for single user deletion
* Remove concept of Segment projects - no longer needed for bulk delete
* Add querying of all suppress and delete user mutations
* removed hipchat
* removed hipchat
* removed hipchat integration
* pep8 fix
* rebaes
* added logic to send notifications to slack
* added logic to send notifications to slack
* Remove hipchat from release advancer
* Add Segment bulk user delete querying functionality
* Implement review comments. Add test for error case
* Add script to call Segment bulk user delete & tests
* Change supress call to bulk delete & change tests
* Fix to avoid TypeError
* add purge-cache parameter
* Avoid logging the email address wherever not necessary
* Update changelog
* Wait longer for ASGs to become healthy
* sailthru deletion: swallow "not found" errors
* Fix pylint errors caused by new version
* Avoid raising exception that stomps the important one
* Segment API key fix and handling of missing projects
* Add retirement archive and cleanup script
* Add SailthruApi class and configure it in script helpers
* fix changes
* add script to send messages to slack
* Update retirement to fetch Segment Ecom ID into config when configured
* Revert "Update retirement to fetch Segment Ecom ID into config when configured"
* Update retirement to fetch Segment Ecom ID into config when configured
* Fix the boto import failures at start of CI
* Update Python versions tested. Update Changelog
* Decrease api call batch size to avoid throttling and retries
* Add logging. Skip report upload upon no retired learners
* prevent comments from being added when there is nobody to notify
* prevent service account from being mentioned in partner notifications
* Revert "Renamed confluence release status keys to match github api and gomatic (#274)"
* Revert "Revert "Renamed confluence release status keys to match github api and gomatic (#274)""
* Add segment\_api to support Segment retirement
* Revert "Renamed confluence release status keys to match github api and gomatic (#274)"
* Renamed confluence release status keys to match github api and gomatic (#274)
* Updated message types for github api and message PRs script and fixing tests
* add crumb requester to jenkins
* Perform Google API retries correctly
* Added stage\_ and prod\_failed PR messages to github\_api; refactored to make adding messages easier
* Fail when listing partner folders retuns zero results
* Add script to delete Google Drive files by ID
* encode all strings going out to the console
* Switch to unicodecsv for partner reporting
* Fix parsing of cloudflare zone name from frontend bucket name
* Check and log all mismatched orgs before reporting
* Tag partners in Drive comment notifications
* Add missed script symlink to retirement\_bulk\_status\_update.py
* Add user\_id to the report
* Add deletion\_completed field to Partner Reporting
* Refactor setup methods
* Add retirement\_bulk\_status\_update script and support
* Fix partner report filenames - remove absolute path
* Purge CloudFlare cache when frontend app is deployed
* add the platform name to generated partner report files
* Added scripts used when deploying frontend apps
* Fix formatting of username results on report generation to fix queue deletion
* Add script to delete expired partner reports
* Correct test\_get\_pr\_in\_range mock for search\_issues
* search github prs using string
* integrate file commenting into partner reporting script
* Correct the search query for finding approved open PRs
* Fix flaky test randomization (#249)
* Add a script to perform the retirement partner reporting operations (#244)
* add create\_comments\_for\_files to DriveApi
* changelog and authors maintenance
* add DriveApi.list\_subfolders() for listing partner folders
* add the drive.metadata scope for listing drive folders
* add google\_api.py
* Adds a new type of PR message that says the tests failed
* Add partner queue retirement API endpoint to edx\_api (#242)
* Backoff after hitting API rate limit when messaging PRs (#241)
* PLAT-2177: Use different backoff for 504 gateway timeout errors. Test both 500 and 504 errors. Update Changelog
* Force integer inputs to be... integers. (#238)
* Error if an unexpectedly high number of users are being retired (#236)
* Correctly decode unicode response content
* Add retirement\_retire\_notes endpoint to edx\_api
* Minimal tests to smoke out simple errors in get\_learners\_to\_retire.py (#234)
* Fix typo in get\_learners\_to\_retire.py (#233)
* edx API clients retry on 504 from the LMS
* Consolidate retirement states to make updates easier (#231)
* Update changelog and authors
* Remove deletion tags from ASGs that should not be removed
* Relax Sailthru retire retry to be any non-500 error
* Fix hard coded states to fetch retirement users for (#228)
* Move static methods outside of class to work properly
* Add retry logic around mailing retirement call
* Add lms\_retire\_misc endpoint to edx\_api (#225)
* Update script checkstep
* Fix an issue with handling retiring users without forum accounts (#223)
* Move the retirement pipeline definition to the config file (#222)
* Harden move to completion state and simplify (#221)
* Added text\_type to retirement scripts for compatibility with python 2 (#220)
* Fixes to issues in retire\_one\_learner.py and edx\_api.py
* fixup! Retire one learner script
* Retire one learner script
* Add error logging for current edx\_api calls
* Upgrade lxml and test dependencies
* Enable Python 3.6 testing on tox/travis
* Add tests for new jenkins and edX API methods
* Script to retrieve LMS learners to retire using edx-rest-api-client. Output Jenkins property files with a file for each learner-to-retire
* Pass through the status url as well
* Remove the restriction on override + edp
* Pull tags from the base AMI even when building from scratch
* Attempted to move args around to more closely mimic the original behavior. Added logging in case iteration is necessary
* Revert "Retry search query failures on github (#208)" (#210)
* Removing test functions for official release
* Retry search query failures on github (#208)
* Add empty \_\_init\_\_.py file to scripts directory to appease pylint
* Fixing file mode
* Responding to comments
* Adding in all other acquia environments. Changing language to make it more clear we can deploy a branch. Adding in test file to use for new pipelines until we can deprecate the standard drupal\_deploy file. Removing format\_rsa\_key
* upgrade gitpython
* Revert "Adding in all other acquia environments. Changing language to make it…"
* Always get the source from the target github repo
* Adding in all other acquia environments. Changing language to make it more clear we can deploy a branch
* Increase plan/prune delay from 5 to 15 seconds
* OPS-2416 Dont wrap new\_asg as timeout exceptions with the GET can cause the POST to be executed again
* OPS-2416 Reactivate test
* OPS-2416 fix deploy issue with post not returning json
* Coryleeio/fix retry (#195)
* Coryleeio/no string retry values (#196)
* Revert "Coryleeio/retry asgard on aws ratelimit (#194)"
* Coryleeio/retry asgard on aws ratelimit (#194)
* OPS-2372 Retry the message prs in range query if it fails (#191)
* Minor fixes to help text for structures.py
* Coryleeio/handle pr already merged (#192)
* Add delay and batch to structures.py make\_plan
* Change pruning delay default to 5000 ms
* Fast pruning of modulestore MongoDB Structures
* General Updates - addressing PR feedbacks (#7)
* change space for edx-platform release wiki pages
* General Updates - addressing PR feedbacks (#6)
* Addressing PR Comments
* [WIP] SplitMongo Pruning (#1)
* Use argument names when calling the PR message creation methods
* Update rollback documentation
* Improve rollback by AMI functionality and clarity
* updated tests for messaging staging
* Revert "Revert "Add ability to message a PR that it broke vagrant devstack""
* Revert "Add ability to message a PR that it broke vagrant devstack"
* Add ability to message a PR that it broke vagrant devstack
* Simple script to check Vagrant devstack services are online
* Fix the name of the private-to-public script
* Remove cleanup param in cleanup method
* Add scripts and pin pylint dependencies
* Add scripts for two-stage reconcile of private->public->private push
* Remove PyGithub leakage - add custom exception when PR create fails
* Fix requirements ordering
* Use the github repository associated with the PullRequest object to post a message
* Don't require --head-sha for message-prs-in-range
* Add script guidelines to the readme
* Allow head\_sha to be read from a file
* Add aliases for flags that are more unix standard
* Output test statuses when checking combined test status
* Change name of api call to check commit combined status
* Create artifact directory when not created
* Show changes across all named apps (even if they have the same repo) in the release wiki page
* Use the ssh\_url for private repos and the clone\_url for public repos in merge-approved-prs
* Add JSON response logging on drupal check\_state failures
* Make sure the release wiki can handle when tags are added or removed from the AMI
* Fix merge-approved-prs so that it correctly outputs repo and sha information
* remove RSA key formatting script
* Allow specifying the variable for the version SHA when tagging
* Fix the help for --source-repo in merge-approved-prs
* Create the directory required for merge-approved-prs --out-file
* Allow specifying variables in the output yaml file the merged sha and the merged repo
* remove decoding for python 3 strings
* Don't error out if the base\_sha and head\_sha are from different repos. This allows messaging against both edx-platform and edx-platform-private
* Re-sync scripts, symlinks, and setup.cfg for all scripts
* take a differet approach to removing delete\_on\_ts from asgs
* Add script to find and advance pipeline. Add hipchat module for message-sending and other HipChat functions
* Don't create empty commits when there are no branches to octopus merge
* instance termination logging cleanup
* add cleanup\_instances to the pbr config
* link instance cleanup script
* Fix git tag fetching when tag is already created
* Only pass reference repo to git clone when it's available
* Improve logging on update\_release\_page.py
* Allow the use of reference repos to speed up cloning
* Cleanup instances remaining from abandoned GoCD runs
* Don't override the repo variable in merge\_branch.py
* Improve the documentation of git\_repo.py and merge\_approved\_prs.py
* Record the results of the octo-merge for later consumption
* Make merge-approved-prs force-push to the target branch
* Rename public to source and private to target in merge-approved-prs
* Make merge-approved-prs actually merge to a branch and push
* Make repository-deletion an opt-in function of LocalGitAPI
* Allow pushes to non-origin repos
* Make the local git api a class
* Add a function for doing octopus merges onto a checked out branch
* Handle cases when finding pipeline instances that already advanced
* Add code/tests which interact with the GoCD API. Finds the release pipeline instance to deploy to production. Use yagocd as the Python wrapper to communicate with GoCD API
* Add a demonstration script to test octo-merging in the private repo
* Sort entry\_points
* Add a function that finds approved and not closed PRs in a github repo
* Add a function that checks if one commit has been merged into another
* fixup! No exception when creating a tag already created on correct SHA
* No exception when creating a tag already created on correct SHA
* Disambiguate git ref to be a branch
* Remove all the old gocd code
* Add instructions on how to install python environments using pyenv
* Don't run tests in parallel on travis
* Convert to using pytest-pylint and pytest-pep8 for linting. Also, remove testing of python2.7
* Add a function to add a remote an existing repository
* Switch to GitPython for local git manipulation
* Upon socket.timeout, retry and continue to poll
* Use 10am EST as the release cutoff time
* Given cleanup-asgs.py a proper python module name
* Improve release wiki formatting of AMI identifiers
* Improve release wiki formatting of repos with no code changes
* Handle error if authentication to confluence fails
* Handle empty PR bodies when writing wiki pages
* Convert all \*() to \*[]
* Force the TypeError to happen even earlier
* Use a sequence not a generator for \*args
* Put pathing logic back for now
* Update based on review
* Revert "Merge pull request #124 from edx/cale/fix-sys-path-hacks"
* Remove sys.path hackery
* Use click-log to add in logging configuration to jenkins\_trigger\_build.py, even when called directly
* Add a script for approving a stage in GoCD
* Bail on empty lists. Fix logging upon some errors
* Modify script to use newest tubular best practices
* Use tubular.scripts rather than tubular.script when pointing to executable scripts
* Poll jenkins every minute when waiting for updates on tests
* Actually exit with a failure if the jenkins status isn't what is expected
* Upgrade setuptools in the base travis install
* Upgrade pip during travis builds
* Use pbr to setup.py, and make all scripts available via installation
* Fail jenkins\_trigger\_build.py if the build status isn't the expected result
* Pin the backoff version (because 1.4.0 breaks under python 3.4 and 3.5 right now)
* Add a script to publish a release page
* Migration output is a list with one element - read it correctly
* add retry attempts to ec2 calls when throttled
* Remove jitter from wait times when waiting for jenkins test runs
* Add email sending functionality and migrate alert script
* Open key file in binary mode when writing the RSA key to it
* Disambiguate git ref to be a branch only
* Run both tests and quality via tox
* Make scripts use python3 by default
* Enable --py3k in quality tests
* Enable testing on python 3.4 and 3.5
* Add possibility of not creating PR if nothing to merge. Gracefully handle the non-creation of a PR in other scripts. Pull the exactly\_one\_set method out into common util code
* Add have\_branches\_diverged method and tests
* Add a default timeout for calls to jenkins
* Clone from the target\_branch, when merging branches
* Record and use the deploy time in tagging a release
* Be explicit about pushing git branches (rather than tags)
* Add a timeout parameter to the jenkins\_trigger\_build script
* Fix exactly-one-cmd-line-param checking
* Capture the commit SHA of the merged branch at time of merge. Output an artifact containing the commit SHA for later consumption. Add scripts to: - call create\_tag. - poll for GitHub commit/PR test status via backoff module
* TE-1936
* Allow message\_prs\_in\_range to read from an AMI tag yaml file
* Make PR message filtering more strict
* Capture tags for the base AMIs
* Add logging about messages being posted to github
* Add the ability to specify an explicit SHA to cut a branch at in cut\_branch.py
* Remove the @user tagging in PR messages. It's redundant (the author of the PR will get notified anyway)
* Add the expected release date to the message posted to PRs for staging deploys
* Add an easily searchable tag to identify edX release process messages
* Add script to message PRs in a range
* PR messaging
* Create the tagging functionality TE-1926
* Remove separate GitRelease files
* Add tests for git repository code
* fixup: remove short cmdline options
* Add default of True for fast-forward-only merging
* Fail if both PR number and commit hash specified. Better docstring
* fixup: remove short cmdline option
* Add general git repo utils. Add branch-merging script
* Add create/merge\_pr scripts. Add PR merging call
* Update README and add LICENSE.txt file
* Break apart the GitHub and release functionality in release.py. Remove/relocate/fix all files under tubular/scripts. Fix all scripts and tests to reflect the refactor
* increase the number of attempts when checking the state of drupal calls
* Add SHA\_LENGHT and BATCH\_SIZE to the README file
* Add method for finding PRs given a commit range
* New version of pygithub is raising a different Exception class when a deleted branch does not exist
* Increasing timeout for drupal, as DB backup currently takes more than 100 seconds
* Fix unicode strings to clean up output for the jenkins script
* Configure logging for jenkins jobs
* Install PyGithub from PyPI
* Implement polling for jenkins build results
* Use pytest to conform to OEP-8
* Update log messaging when branch can not be created
* create branch now returns github.GitRef.GitRef, prevents sync errors with github when a new branch may not be available for a few seconds after creation
* Remove length check
* do not check the CI of a commit when creating a branch
* script that will create a branch on a github repository
* Updates per code review, will squash
* Add method to extract last base AMI ID used from a particular EDP. Update boto/moto requirement versions. Add script to call new method
* Refactor custom github api code to use the pygithub library
* Improve error messaging when new ASG is set to 0 instances
* move code to cut branches/PRs from the testeng-ci repo
* Add a tubular script for triggering a jenkins job TE-1854
* Bump ASG creation timeout up to 26 minutes
* Change name of ASG creation timeout var. Change default to 20 minutes
* Rollback now respects 404 from asgard when an ASG does not exist
* new ASG now ensures the default and min size is > 0
* add methods to fetch all ASGs and ELBs in paged calls
* Add safeguard against specifying different AMI ids
* asgs\_for\_edp is no longer a generator, simply returns a list
* When fetching ASGs for an EDP, continue fetching if there are > 50 items
* Fix error when no config file or ami\_id sent in
* Don't add newest ASG to dict until new\_asg() completes without failure
* Add PEP8/pylint checking to testing. Fix PEP8/pylint errors. Add PEP8/pylint checking to Makefile. Add quality checking to travis testing
* Make methods protected to show clearly they are local
* Address more review comments
* Respond to review comments: Upgrade version of moto. Add EC2 method to remove tags from an ASG. Add checks before rollback to ensure existing ASGs are healthy. Allow red/black deployment method to report back state of ASGs. Add tests for all rollback/deploy code paths
* Add rollback functionality to asgard module. Add click script to rollback to ASGs. Add tests for rollback and failed rollback
* Revert "Put deploys in to debug mode."
* Put deploys in to debug mode
* return dicts so yaml serialization works properly
* Handle HTML sent from any Asgard API call. Add tests
* Fixup: Feedback from review
* Fix defect where if one of many asgs did not come in to service, some would be left active
* Fixing tests to test the response value from an asgard deployment
* asgard deployments now return information about what ASGs were added and what ASGs were disabled
* pylint fixes
* improved error message when AMI is not for when looking up EDC
* no longer raise exception when trying to tag an ASG that does not exist
* no longer raise exception when trying to tag an ASG that does not exist
* Changed clear varnish cache to clear all domains in the environments
* Changed fetch tag to not strip off tags/ and the deploy url to be able to deploy any name
* Deal with the case where this has been partially run
* Add options, and input workflow
* moved wait\_sleep\_time to utils and added the sleep time to ec2
* Added in path before importing tubular code and changed fetch\_deployed\_tag to write to the file
* Added in a script to fetch the currently deployed tag name for use in reverting deploys
* Add boto script to add go-agent ingress into apps
* Added in scripts to clear varnish cache, backup database, and deploy code to stage or prod
* Get rid of extra retries
* Import all exception types that we use, explicitly
* Add a test to ensure we don't delete the last ASG in a cluster
* Fix existing tests
* Change function to only look for last asg since there is already a function for active asg
* Prevent last active ASG from being disabled and from being deleted
* Add a general method for getting json info out of asgard
* trim whitespace from sensitive input
* Respond to review suggestions
* We don't care about deletion when trying to determine clusters
* Better handle when ASGs have been deleted
* Handle the case where too many ASGs already exist for a culster
* File is optional, don't try to load it if it doesn't exist
* Add the ability to dry\_run the deploy script
* Be able to read ami ID from a yaml config file
* Checking the right vars
* Earlier error checking
* Handle empty channel names and respond to review feedback
* incremented version number
* Shorten the ASG delete tag to 30 minutes
* Accept multiple channels to send the message to
* Fix some nits
* Don't retry creating new ASGs if it fails
* Get a better error when we fail to decode json
* Make the color of the message configurable
* Move to the top-level scripts directory
* Change script to reflect new pattern. Add more output
* delete\_asg expects a string not a boto AutoScale object
* Script that will correctly format the mangled RSA key that is passed from gocd using secure variables
* Import cleanup and python 3 compatibility fixes
* asgs\_for\_edp now filters out ASGs pending delete
* Use an environment variable to enable/disable the retry decorator
* first pass at retry decorator
* Add scripts/tests to validate EDP and restrict to stage. Add environment variables to script args. Fix PEP8 issues
* moved util.py location
* Readme now includes the description of the project along with information about the Environemnt variables that can be specified
* fixed imports in cleanup-asgs.py
* Added ability to set the sleep time while waiting for tasks to complete
* use @mock.patch in tests instead of manually monkey patching
* added test to ensure the timestamp attached a deletion tag has the correct time delta
* Monkey patch create\_or\_update\_tags as moto does not implement this function
* Add deletion tag to ASGs being disabled/pending delete after deploy
* better use of constants for ASG key name
* improved testing of ASG membership
* more fine grained logging in get\_asgs\_pending\_delete
* Added test to verify an ASG with a bad timestamp will still return when get\_asgs\_pending\_delete is called
* ec2 scripts now have the ability to tag an ASG with a time to delete and to fetch a list of ASGs who's deletion timestamp have passed
* fixed typo in delete-asg.py script
* Improved documentation about asgard actions
* Added boolean to delete\_asg method that will prevent an ASG from being deleted if it is currently active
* 5 minutes is not enough time sometimes
* Script to delete an ASG
* Added ability to delete ASGs via asgard
* New ASGs are now checked to see if they are disabled or deleted before disabling existing ASGs
* Revert "Ensure the new ASG(s) is not being deleted before deleting existing ASG(s)"
* Added new exception type ASGDoesNotExistException, thrown when a 404 is returned when looking up info on an ASG
* Adding is\_asg\_enabled call. This is now checked on new ASGs during deployment to ensure the new ASG is healthy before disabling old ASGs
* Improved way of checking for a disabled ASG
* Print the traceback as well for debugging purposes
* boto.autoscale.get\_all\_groups expects a list as a filter
* TE-1281: Fix failure in ASG disabling. When an ASG is pending deletion, skip disabling it. Combine two tests into a single test
* Add top-level module path before tubular import
* Use all command args
* Change EDP to edc
* Fix asgard w.r.t clusters/play
* Convert ec2.py to know about the 'play' tag
* Fixes for TE-1273. AMIs will now deploy correctly and tests related to health checks on ELB instances have been expanded
* Add external script to Makefile for venv source
* Call source/deactivate via the shell. Use correct indentation
* Allow INFO level logging
* Initial version of Makefile
* Allow INFO level logging
* Minor README change
* Minor README change
* Minor README edit for trigger
* Minor README edit
* Bug Fix: Requests Timeout
* Don't pct encode the token
* Use environment var for AMI\_ID
* removed click requirement from the test\_requirements file
* Adding executable python script to deploy AMIs
* Update timeout and fix old\_asg\_disabling
* Pull out asg\_info function and add tests
* Improve import and logging
* Add timeouts to api requests
* Namespace imports
* Delete print statements
* Pull out the function to create autoscaling groups and ELBs
* Add deploy function
* Add wait\_for\_healthy\_elbs function
* Add new function to disable asgs
* Add an enable\_asg function
* Speed up test runs
* Add new wait\_for\_in\_service function
* Update asgard documentation
* Add new\_asg function
* Simplify bad JSON tests
* Test asgs\_for\_clusters and task\_completion monitoring
* Use DDT to reduce copied code
* Round out the comment
* Don't obscure requests exceptions that are useful
* Move exceptions exception module
* Add asgard ASG function
* Split edc\_for\_ami tests into three separate tests
* Correct travis.yml
* Re-organize the requirements
* Use DDT for asgs\_for\_edc tests
* Remove dict\_from\_tag\_list
* Rename test class
* Update docs
* Get all ASGs that match an EDC
* Latest version of test config with installable module
* Add versions to required modules. Refer to tubular itself from requirements.pip
* Add ability to set HipChat message contents
* Add GoCD-specific code
* Make tubular installable
* Move exceptions into their own module
* Cleanup documentation
* Add a travis file and a requirements file
* Add an ec2 utility function for getting AMI Info
* Add delay and HipChat posting scripts
* Read parameters from environment variables. Add some prints for logging. Return the correct exit status code on success/failure
* Change import filename - oops
* Initial script implementation
* Initial commit