From 3359a5a56337b93cd34b9914b6468395bfb6c514 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 9 Dec 2019 00:07:44 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- app/helpers/git_helper.rb | 7 +- changelogs/unreleased/fix-strip_signature.yml | 5 + .../graphql/reference/gitlab_schema.graphql | 89 +++++++++- doc/api/graphql/reference/gitlab_schema.json | 46 ++--- doc/api/graphql/reference/index.md | 44 ++--- spec/helpers/git_helper_spec.rb | 159 ++++++++++++++++++ .../ide/stores/modules/pane/actions_spec.js | 0 7 files changed, 301 insertions(+), 49 deletions(-) create mode 100644 changelogs/unreleased/fix-strip_signature.yml delete mode 100644 spec/javascripts/ide/stores/modules/pane/actions_spec.js diff --git a/app/helpers/git_helper.rb b/app/helpers/git_helper.rb index 03b71522b84..0fb37a69e56 100644 --- a/app/helpers/git_helper.rb +++ b/app/helpers/git_helper.rb @@ -2,9 +2,10 @@ module GitHelper def strip_signature(text) - text.gsub(/-----BEGIN PGP SIGNATURE-----(.*)-----END PGP SIGNATURE-----/m, "") - text.gsub(/-----BEGIN PGP MESSAGE-----(.*)-----END PGP MESSAGE-----/m, "") - text.gsub(/-----BEGIN SIGNED MESSAGE-----(.*)-----END SIGNED MESSAGE-----/m, "") + text = text.gsub(/-----BEGIN PGP SIGNATURE-----(.*)-----END PGP SIGNATURE-----/m, "") + text = text.gsub(/-----BEGIN PGP MESSAGE-----(.*)-----END PGP MESSAGE-----/m, "") + text = text.gsub(/-----BEGIN SIGNED MESSAGE-----(.*)-----END SIGNED MESSAGE-----/m, "") + text end def short_sha(text) diff --git a/changelogs/unreleased/fix-strip_signature.yml b/changelogs/unreleased/fix-strip_signature.yml new file mode 100644 index 00000000000..0f61c38ad0f --- /dev/null +++ b/changelogs/unreleased/fix-strip_signature.yml @@ -0,0 +1,5 @@ +--- +title: 'Correctly return stripped PGP text' +merge_request: 21187 +author: Roger Meier +type: fixed diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index 8abe501eafc..12cb4aa78ee 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -1128,7 +1128,14 @@ enum EntryType { } type Epic implements Noteable { + """ + Author of the epic + """ author: User! + + """ + Children (sub-epics) of the epic + """ children( """ Returns the elements in the list that come after the specified cursor. @@ -1197,13 +1204,25 @@ type Epic implements Noteable { """ state: EpicState ): EpicConnection + + """ + Timestamp of the epic's closure + """ closedAt: Time + + """ + Timestamp of the epic's creation + """ createdAt: Time """ Number of open and closed descendant epics and issues """ descendantCounts: EpicDescendantCount + + """ + Description of the epic + """ description: String """ @@ -1235,14 +1254,50 @@ type Epic implements Noteable { Number of downvotes the epic has received """ downvotes: Int! + + """ + Due date of the epic + """ dueDate: Time + + """ + Fixed due date of the epic + """ dueDateFixed: Time + + """ + Inherited due date of the epic from milestones + """ dueDateFromMilestones: Time + + """ + Indicates if the due date has been manually set + """ dueDateIsFixed: Boolean + + """ + Group to which the epic belongs + """ group: Group! + + """ + Indicates if the epic has children + """ hasChildren: Boolean! + + """ + Indicates if the epic has direct issues + """ hasIssues: Boolean! + + """ + ID of the epic + """ id: ID! + + """ + Internal ID of the epic + """ iid: ID! """ @@ -1319,6 +1374,10 @@ type Epic implements Noteable { """ last: Int ): NoteConnection! + + """ + Parent epic of the epic + """ parent: Epic """ @@ -1349,20 +1408,48 @@ type Epic implements Noteable { relationPath: String """ - The relative position of the epic in the Epic tree + The relative position of the epic in the epic tree """ relativePosition: Int + + """ + Start date of the epic + """ startDate: Time + + """ + Fixed start date of the epic + """ startDateFixed: Time + + """ + Inherited start date of the epic from milestones + """ startDateFromMilestones: Time + + """ + Indicates if the start date has been manually set + """ startDateIsFixed: Boolean + + """ + State of the epic + """ state: EpicState! """ Boolean flag for whether the currently logged in user is subscribed to this epic """ subscribed: Boolean! + + """ + Title of the epic + """ title: String + + """ + Timestamp of the epic's last activity + """ updatedAt: Time """ diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json index aa75d920997..a9ea0948217 100644 --- a/doc/api/graphql/reference/gitlab_schema.json +++ b/doc/api/graphql/reference/gitlab_schema.json @@ -3342,7 +3342,7 @@ "fields": [ { "name": "author", - "description": null, + "description": "Author of the epic", "args": [ ], @@ -3360,7 +3360,7 @@ }, { "name": "children", - "description": null, + "description": "Children (sub-epics) of the epic", "args": [ { "name": "iid", @@ -3519,7 +3519,7 @@ }, { "name": "closedAt", - "description": null, + "description": "Timestamp of the epic's closure", "args": [ ], @@ -3533,7 +3533,7 @@ }, { "name": "createdAt", - "description": null, + "description": "Timestamp of the epic's creation", "args": [ ], @@ -3561,7 +3561,7 @@ }, { "name": "description", - "description": null, + "description": "Description of the epic", "args": [ ], @@ -3650,7 +3650,7 @@ }, { "name": "dueDate", - "description": null, + "description": "Due date of the epic", "args": [ ], @@ -3664,7 +3664,7 @@ }, { "name": "dueDateFixed", - "description": null, + "description": "Fixed due date of the epic", "args": [ ], @@ -3678,7 +3678,7 @@ }, { "name": "dueDateFromMilestones", - "description": null, + "description": "Inherited due date of the epic from milestones", "args": [ ], @@ -3692,7 +3692,7 @@ }, { "name": "dueDateIsFixed", - "description": null, + "description": "Indicates if the due date has been manually set", "args": [ ], @@ -3706,7 +3706,7 @@ }, { "name": "group", - "description": null, + "description": "Group to which the epic belongs", "args": [ ], @@ -3724,7 +3724,7 @@ }, { "name": "hasChildren", - "description": null, + "description": "Indicates if the epic has children", "args": [ ], @@ -3742,7 +3742,7 @@ }, { "name": "hasIssues", - "description": null, + "description": "Indicates if the epic has direct issues", "args": [ ], @@ -3760,7 +3760,7 @@ }, { "name": "id", - "description": null, + "description": "ID of the epic", "args": [ ], @@ -3778,7 +3778,7 @@ }, { "name": "iid", - "description": null, + "description": "Internal ID of the epic", "args": [ ], @@ -3959,7 +3959,7 @@ }, { "name": "parent", - "description": null, + "description": "Parent epic of the epic", "args": [ ], @@ -4067,7 +4067,7 @@ }, { "name": "relativePosition", - "description": "The relative position of the epic in the Epic tree", + "description": "The relative position of the epic in the epic tree", "args": [ ], @@ -4081,7 +4081,7 @@ }, { "name": "startDate", - "description": null, + "description": "Start date of the epic", "args": [ ], @@ -4095,7 +4095,7 @@ }, { "name": "startDateFixed", - "description": null, + "description": "Fixed start date of the epic", "args": [ ], @@ -4109,7 +4109,7 @@ }, { "name": "startDateFromMilestones", - "description": null, + "description": "Inherited start date of the epic from milestones", "args": [ ], @@ -4123,7 +4123,7 @@ }, { "name": "startDateIsFixed", - "description": null, + "description": "Indicates if the start date has been manually set", "args": [ ], @@ -4137,7 +4137,7 @@ }, { "name": "state", - "description": null, + "description": "State of the epic", "args": [ ], @@ -4173,7 +4173,7 @@ }, { "name": "title", - "description": null, + "description": "Title of the epic", "args": [ ], @@ -4187,7 +4187,7 @@ }, { "name": "updatedAt", - "description": null, + "description": "Timestamp of the epic's last activity", "args": [ ], diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index e9c27ffc432..8d105e6c1ab 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -195,32 +195,32 @@ The API can be explored interactively using the [GraphiQL IDE](../index.md#graph | Name | Type | Description | | --- | ---- | ---------- | | `userPermissions` | EpicPermissions! | Permissions for the current user on the resource | -| `id` | ID! | | -| `iid` | ID! | | -| `title` | String | | -| `description` | String | | -| `state` | EpicState! | | -| `group` | Group! | | -| `parent` | Epic | | -| `author` | User! | | -| `startDate` | Time | | -| `startDateIsFixed` | Boolean | | -| `startDateFixed` | Time | | -| `startDateFromMilestones` | Time | | -| `dueDate` | Time | | -| `dueDateIsFixed` | Boolean | | -| `dueDateFixed` | Time | | -| `dueDateFromMilestones` | Time | | +| `id` | ID! | ID of the epic | +| `iid` | ID! | Internal ID of the epic | +| `title` | String | Title of the epic | +| `description` | String | Description of the epic | +| `state` | EpicState! | State of the epic | +| `group` | Group! | Group to which the epic belongs | +| `parent` | Epic | Parent epic of the epic | +| `author` | User! | Author of the epic | +| `startDate` | Time | Start date of the epic | +| `startDateIsFixed` | Boolean | Indicates if the start date has been manually set | +| `startDateFixed` | Time | Fixed start date of the epic | +| `startDateFromMilestones` | Time | Inherited start date of the epic from milestones | +| `dueDate` | Time | Due date of the epic | +| `dueDateIsFixed` | Boolean | Indicates if the due date has been manually set | +| `dueDateFixed` | Time | Fixed due date of the epic | +| `dueDateFromMilestones` | Time | Inherited due date of the epic from milestones | | `upvotes` | Int! | Number of upvotes the epic has received | | `downvotes` | Int! | Number of downvotes the epic has received | -| `closedAt` | Time | | -| `createdAt` | Time | | -| `updatedAt` | Time | | -| `hasChildren` | Boolean! | | -| `hasIssues` | Boolean! | | +| `closedAt` | Time | Timestamp of the epic's closure | +| `createdAt` | Time | Timestamp of the epic's creation | +| `updatedAt` | Time | Timestamp of the epic's last activity | +| `hasChildren` | Boolean! | Indicates if the epic has children | +| `hasIssues` | Boolean! | Indicates if the epic has direct issues | | `webPath` | String! | | | `webUrl` | String! | | -| `relativePosition` | Int | The relative position of the epic in the Epic tree | +| `relativePosition` | Int | The relative position of the epic in the epic tree | | `relationPath` | String | | | `reference` | String! | | | `subscribed` | Boolean! | Boolean flag for whether the currently logged in user is subscribed to this epic | diff --git a/spec/helpers/git_helper_spec.rb b/spec/helpers/git_helper_spec.rb index 505d6ed15ac..6dfd8d2cc76 100644 --- a/spec/helpers/git_helper_spec.rb +++ b/spec/helpers/git_helper_spec.rb @@ -8,4 +8,163 @@ describe GitHelper do it { expect(short_sha).to eq('d4e043f6') } end + + describe '#strip_signature' do + context 'strips PGP SIGNATURE' do + let(:strip_signature) { helper.strip_signature( pgp_signature_tag ) } + + it { expect(strip_signature).to eq("Version 1.69.0\n\n") } + end + context 'strips PGP MESSAGE' do + let(:strip_signature) { helper.strip_signature( pgp_message_tag ) } + + it { expect(strip_signature).to eq("Version 1.69.0\n\n") } + end + context 'strips SIGNED MESSAGE' do + let(:strip_signature) { helper.strip_signature( x509_message_tag ) } + + it { expect(strip_signature).to eq("this is Roger's signed tag\n\n") } + end + end + + def pgp_signature_tag + <<~SIGNATURE + Version 1.69.0 + -----BEGIN PGP SIGNATURE----- + + iQEzBAABCAAdFiEEFMo1pwRq9j04Jovq68Q/GjfvLIoFAl2l64QACgkQ68Q/Gjfv + LIqRDggAm0d1ceVRsfldlwC6guR2ly8aWoTtZZ19E12bsfXd4lJqcQv7JXTP0og0 + cwbV0l92iBJKGW6bFBipKDFmSgr5le5zFsXYOr9bJCQNOhFNMmtAgaHEIeVI16+c + S3pA+qIe516d4wRs/hcbxDJKC68iIlDaLXObdzTTLGMgbCYBFTjYJldNUfTkdvbB + oGEpFXuxV9EyfBtPLsz2vUea5GdZcRSVyJbcgm9ZU+ekdLZckroP5M0I5SQTbD3y + VrbCY3ziYtau4zK4cV66ybRz1G7tR6dcoC4kGUbaZlKsVZ1Af80agx2d9k5MR1wS + 4OFe1H0zIfpPRFsyX2toaum3EX6QBA== + =hefg + -----END PGP SIGNATURE----- + SIGNATURE + end + + def pgp_message_tag + <<~SIGNATURE + Version 1.69.0 + -----BEGIN PGP MESSAGE----- + + iQEzBAABCAAdFiEEFMo1pwRq9j04Jovq68Q/GjfvLIoFAl2l64QACgkQ68Q/Gjfv + LIqRDggAm0d1ceVRsfldlwC6guR2ly8aWoTtZZ19E12bsfXd4lJqcQv7JXTP0og0 + cwbV0l92iBJKGW6bFBipKDFmSgr5le5zFsXYOr9bJCQNOhFNMmtAgaHEIeVI16+c + S3pA+qIe516d4wRs/hcbxDJKC68iIlDaLXObdzTTLGMgbCYBFTjYJldNUfTkdvbB + oGEpFXuxV9EyfBtPLsz2vUea5GdZcRSVyJbcgm9ZU+ekdLZckroP5M0I5SQTbD3y + VrbCY3ziYtau4zK4cV66ybRz1G7tR6dcoC4kGUbaZlKsVZ1Af80agx2d9k5MR1wS + 4OFe1H0zIfpPRFsyX2toaum3EX6QBA== + =hefg + -----END PGP MESSAGE----- + SIGNATURE + end + + def x509_message_tag + <<~SIGNATURE + this is Roger's signed tag + -----BEGIN SIGNED MESSAGE----- + MIISfwYJKoZIhvcNAQcCoIIScDCCEmwCAQExDTALBglghkgBZQMEAgEwCwYJKoZI + hvcNAQcBoIIP8zCCB3QwggVcoAMCAQICBBXXLOIwDQYJKoZIhvcNAQELBQAwgbYx + CzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCYXllcm4xETAPBgNVBAcMCE11ZW5jaGVu + MRAwDgYDVQQKDAdTaWVtZW5zMREwDwYDVQQFEwhaWlpaWlpBNjEdMBsGA1UECwwU + U2llbWVucyBUcnVzdCBDZW50ZXIxPzA9BgNVBAMMNlNpZW1lbnMgSXNzdWluZyBD + QSBNZWRpdW0gU3RyZW5ndGggQXV0aGVudGljYXRpb24gMjAxNjAeFw0xNzAyMDMw + NjU4MzNaFw0yMDAyMDMwNjU4MzNaMFsxETAPBgNVBAUTCFowMDBOV0RIMQ4wDAYD + VQQqDAVSb2dlcjEOMAwGA1UEBAwFTWVpZXIxEDAOBgNVBAoMB1NpZW1lbnMxFDAS + BgNVBAMMC01laWVyIFJvZ2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC + AQEAuBNea/68ZCnHYQjpm/k3ZBG0wBpEKSwG6lk9CEQlSxsqVLQHAoAKBIlJm1in + YVLcK/Sq1yhYJ/qWcY/M53DhK2rpPuhtrWJUdOUy8EBWO20F4bd4Fw9pO7jt8bme + u33TSrK772vKjuppzB6SeG13Cs08H+BIeD106G27h7ufsO00pvsxoSDL+uc4slnr + pBL+2TAL7nSFnB9QHWmRIK27SPqJE+lESdb0pse11x1wjvqKy2Q7EjL9fpqJdHzX + NLKHXd2r024TOORTa05DFTNR+kQEKKV96XfpYdtSBomXNQ44cisiPBJjFtYvfnFE + wgrHa8fogn/b0C+A+HAoICN12wIDAQABo4IC4jCCAt4wHQYDVR0OBBYEFCF+gkUp + XQ6xGc0kRWXuDFxzA14zMEMGA1UdEQQ8MDqgIwYKKwYBBAGCNxQCA6AVDBNyLm1l + aWVyQHNpZW1lbnMuY29tgRNyLm1laWVyQHNpZW1lbnMuY29tMA4GA1UdDwEB/wQE + AwIHgDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgcoGA1UdHwSBwjCB + vzCBvKCBuaCBtoYmaHR0cDovL2NoLnNpZW1lbnMuY29tL3BraT9aWlpaWlpBNi5j + cmyGQWxkYXA6Ly9jbC5zaWVtZW5zLm5ldC9DTj1aWlpaWlpBNixMPVBLST9jZXJ0 + aWZpY2F0ZVJldm9jYXRpb25MaXN0hklsZGFwOi8vY2wuc2llbWVucy5jb20vQ049 + WlpaWlpaQTYsbz1UcnVzdGNlbnRlcj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0 + MEUGA1UdIAQ+MDwwOgYNKwYBBAGhaQcCAgMBAzApMCcGCCsGAQUFBwIBFhtodHRw + Oi8vd3d3LnNpZW1lbnMuY29tL3BraS8wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAW + gBT4FV1HDGx3e3LEAheRaKK292oJRDCCAQQGCCsGAQUFBwEBBIH3MIH0MDIGCCsG + AQUFBzAChiZodHRwOi8vYWguc2llbWVucy5jb20vcGtpP1paWlpaWkE2LmNydDBB + BggrBgEFBQcwAoY1bGRhcDovL2FsLnNpZW1lbnMubmV0L0NOPVpaWlpaWkE2LEw9 + UEtJP2NBQ2VydGlmaWNhdGUwSQYIKwYBBQUHMAKGPWxkYXA6Ly9hbC5zaWVtZW5z + LmNvbS9DTj1aWlpaWlpBNixvPVRydXN0Y2VudGVyP2NBQ2VydGlmaWNhdGUwMAYI + KwYBBQUHMAGGJGh0dHA6Ly9vY3NwLnBraS1zZXJ2aWNlcy5zaWVtZW5zLmNvbTAN + BgkqhkiG9w0BAQsFAAOCAgEAXPVcX6vaEcszJqg5IemF9aFTlwTrX5ITNIpzcqG+ + kD5haOf2mZYLjl+MKtLC1XfmIsGCUZNb8bjP6QHQEI+2d6x/ZOqPq7Kd7PwVu6x6 + xZrkDjUyhUbUntT5+RBy++l3Wf6Cq6Kx+K8ambHBP/bu90/p2U8KfFAG3Kr2gI2q + fZrnNMOxmJfZ3/sXxssgLkhbZ7hRa+MpLfQ6uFsSiat3vlawBBvTyHnoZ/7oRc8y + qi6QzWcd76CPpMElYWibl+hJzKbBZUWvc71AzHR6i1QeZ6wubYz7vr+FF5Y7tnxB + Vz6omPC9XAg0F+Dla6Zlz3Awj5imCzVXa+9SjtnsidmJdLcKzTAKyDewewoxYOOJ + j3cJU7VSjJPl+2fVmDBaQwcNcUcu/TPAKApkegqO7tRF9IPhjhW8QkRnkqMetO3D + OXmAFVIsEI0Hvb2cdb7B6jSpjGUuhaFm9TCKhQtCk2p8JCDTuaENLm1x34rrJKbT + 2vzyYN0CZtSkUdgD4yQxK9VWXGEzexRisWb4AnZjD2NAquLPpXmw8N0UwFD7MSpC + dpaX7FktdvZmMXsnGiAdtLSbBgLVWOD1gmJFDjrhNbI8NOaOaNk4jrfGqNh5lhGU + 4DnBT2U6Cie1anLmFH/oZooAEXR2o3Nu+1mNDJChnJp0ovs08aa3zZvBdcloOvfU + qdowggh3MIIGX6ADAgECAgQtyi/nMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYDVQQG + EwJERTEPMA0GA1UECAwGQmF5ZXJuMREwDwYDVQQHDAhNdWVuY2hlbjEQMA4GA1UE + CgwHU2llbWVuczERMA8GA1UEBRMIWlpaWlpaQTExHTAbBgNVBAsMFFNpZW1lbnMg + VHJ1c3QgQ2VudGVyMSIwIAYDVQQDDBlTaWVtZW5zIFJvb3QgQ0EgVjMuMCAyMDE2 + MB4XDTE2MDcyMDEzNDYxMFoXDTIyMDcyMDEzNDYxMFowgbYxCzAJBgNVBAYTAkRF + MQ8wDQYDVQQIDAZCYXllcm4xETAPBgNVBAcMCE11ZW5jaGVuMRAwDgYDVQQKDAdT + aWVtZW5zMREwDwYDVQQFEwhaWlpaWlpBNjEdMBsGA1UECwwUU2llbWVucyBUcnVz + dCBDZW50ZXIxPzA9BgNVBAMMNlNpZW1lbnMgSXNzdWluZyBDQSBNZWRpdW0gU3Ry + ZW5ndGggQXV0aGVudGljYXRpb24gMjAxNjCCAiIwDQYJKoZIhvcNAQEBBQADggIP + ADCCAgoCggIBAL9UfK+JAZEqVMVvECdYF9IK4KSw34AqyNl3rYP5x03dtmKaNu+2 + 0fQqNESA1NGzw3s6LmrKLh1cR991nB2cvKOXu7AvEGpSuxzIcOROd4NpvRx+Ej1p + JIPeqf+ScmVK7lMSO8QL/QzjHOpGV3is9sG+ZIxOW9U1ESooy4Hal6ZNs4DNItsz + piCKqm6G3et4r2WqCy2RRuSqvnmMza7Y8BZsLy0ZVo5teObQ37E/FxqSrbDI8nxn + B7nVUve5ZjrqoIGSkEOtyo11003dVO1vmWB9A0WQGDqE/q3w178hGhKfxzRaqzyi + SoADUYS2sD/CglGTUxVq6u0pGLLsCFjItcCWqW+T9fPYfJ2CEd5b3hvqdCn+pXjZ + /gdX1XAcdUF5lRnGWifaYpT9n4s4adzX8q6oHSJxTppuAwLRKH6eXALbGQ1I9lGQ + DSOipD/09xkEsPw6HOepmf2U3YxZK1VU2sHqugFJboeLcHMzp6E1n2ctlNG1GKE9 + FDHmdyFzDi0Nnxtf/GgVjnHF68hByEE1MYdJ4nJLuxoT9hyjYdRW9MpeNNxxZnmz + W3zh7QxIqP0ZfIz6XVhzrI9uZiqwwojDiM5tEOUkQ7XyW6grNXe75yt6mTj89LlB + H5fOW2RNmCy/jzBXDjgyskgK7kuCvUYTuRv8ITXbBY5axFA+CpxZqokpAgMBAAGj + ggKmMIICojCCAQUGCCsGAQUFBwEBBIH4MIH1MEEGCCsGAQUFBzAChjVsZGFwOi8v + YWwuc2llbWVucy5uZXQvQ049WlpaWlpaQTEsTD1QS0k/Y0FDZXJ0aWZpY2F0ZTAy + BggrBgEFBQcwAoYmaHR0cDovL2FoLnNpZW1lbnMuY29tL3BraT9aWlpaWlpBMS5j + cnQwSgYIKwYBBQUHMAKGPmxkYXA6Ly9hbC5zaWVtZW5zLmNvbS91aWQ9WlpaWlpa + QTEsbz1UcnVzdGNlbnRlcj9jQUNlcnRpZmljYXRlMDAGCCsGAQUFBzABhiRodHRw + Oi8vb2NzcC5wa2ktc2VydmljZXMuc2llbWVucy5jb20wHwYDVR0jBBgwFoAUcG2g + UOyp0CxnnRkV/v0EczXD4tQwEgYDVR0TAQH/BAgwBgEB/wIBADBABgNVHSAEOTA3 + MDUGCCsGAQQBoWkHMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuc2llbWVucy5j + b20vcGtpLzCBxwYDVR0fBIG/MIG8MIG5oIG2oIGzhj9sZGFwOi8vY2wuc2llbWVu + cy5uZXQvQ049WlpaWlpaQTEsTD1QS0k/YXV0aG9yaXR5UmV2b2NhdGlvbkxpc3SG + Jmh0dHA6Ly9jaC5zaWVtZW5zLmNvbS9wa2k/WlpaWlpaQTEuY3JshkhsZGFwOi8v + Y2wuc2llbWVucy5jb20vdWlkPVpaWlpaWkExLG89VHJ1c3RjZW50ZXI/YXV0aG9y + aXR5UmV2b2NhdGlvbkxpc3QwJwYDVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwME + BggrBgEFBQcDCTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPgVXUcMbHd7csQC + F5Foorb3aglEMA0GCSqGSIb3DQEBCwUAA4ICAQBw+sqMp3SS7DVKcILEmXbdRAg3 + lLO1r457KY+YgCT9uX4VG5EdRKcGfWXK6VHGCi4Dos5eXFV34Mq/p8nu1sqMuoGP + YjHn604eWDprhGy6GrTYdxzcE/GGHkpkuE3Ir/45UcmZlOU41SJ9SNjuIVrSHMOf + ccSY42BCspR/Q1Z/ykmIqQecdT3/Kkx02GzzSN2+HlW6cEO4GBW5RMqsvd2n0h2d + fe2zcqOgkLtx7u2JCR/U77zfyxG3qXtcymoz0wgSHcsKIl+GUjITLkHfS9Op8V7C + Gr/dX437sIg5pVHmEAWadjkIzqdHux+EF94Z6kaHywohc1xG0KvPYPX7iSNjkvhz + 4NY53DHmxl4YEMLffZnaS/dqyhe1GTpcpyN8WiR4KuPfxrkVDOsuzWFtMSvNdlOV + gdI0MXcLMP+EOeANZWX6lGgJ3vWyemo58nzgshKd24MY3w3i6masUkxJH2KvI7UH + /1Db3SC8oOUjInvSRej6M3ZhYWgugm6gbpUgFoDw/o9Cg6Qm71hY0JtcaPC13rzm + N8a2Br0+Fa5e2VhwLmAxyfe1JKzqPwuHT0S5u05SQghL5VdzqfA8FCL/j4XC9yI6 + csZTAQi73xFQYVjZt3+aoSz84lOlTmVo/jgvGMY/JzH9I4mETGgAJRNj34Z/0meh + M+pKWCojNH/dgyJSwDGCAlIwggJOAgEBMIG/MIG2MQswCQYDVQQGEwJERTEPMA0G + A1UECAwGQmF5ZXJuMREwDwYDVQQHDAhNdWVuY2hlbjEQMA4GA1UECgwHU2llbWVu + czERMA8GA1UEBRMIWlpaWlpaQTYxHTAbBgNVBAsMFFNpZW1lbnMgVHJ1c3QgQ2Vu + dGVyMT8wPQYDVQQDDDZTaWVtZW5zIElzc3VpbmcgQ0EgTWVkaXVtIFN0cmVuZ3Ro + IEF1dGhlbnRpY2F0aW9uIDIwMTYCBBXXLOIwCwYJYIZIAWUDBAIBoGkwHAYJKoZI + hvcNAQkFMQ8XDTE5MTExNDE3MzYzNFowLwYJKoZIhvcNAQkEMSIEIJO0Q0yM+f6h + pNqE7YCAEPwe751CamgWYqKBIUMjTViqMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B + BwEwCwYJKoZIhvcNAQEBBIIBACZqs0NEuP1O/90avijVtTGicqMHp6vBBcmPJK7O + WOsL1DIDfAww+fw0r5cMbnmJA+iTfY5iZU/nqMK9kiGx055eoqU9KJaWFzY3KFO/ + aOeXBCxv7CTDIVKoQtA0RCH6cGOgD6dnH2Lez3aDmziEd7gMqkBRo7lh1O6o5FQy + xyZl3p3/MYrFTeZDnr0YeBWWzPrECaQkI1M7K1hdTqmURU1wE6tSANYyT7/BtN+O + XVB/7uD6aTTo+eHyeJxcZGja0IsMXmwlsFqmlxxciYhQhQdPaXRcutdx0fMEF5Zq + wxhu3ScPA3X7e2ENEKJNl5W1OT9YXvc3K9Hwvtj8USx3CJI= + -----END SIGNED MESSAGE----- + SIGNATURE + end end diff --git a/spec/javascripts/ide/stores/modules/pane/actions_spec.js b/spec/javascripts/ide/stores/modules/pane/actions_spec.js deleted file mode 100644 index e69de29bb2d..00000000000