Skip to content

Commit

Permalink
Merge branch '__rultor'
Browse files Browse the repository at this point in the history
  • Loading branch information
rultor committed Oct 30, 2024
2 parents 6f965e6 + f147d7e commit 5ec35f4
Show file tree
Hide file tree
Showing 105 changed files with 1,924 additions and 719 deletions.
4 changes: 2 additions & 2 deletions eo2js-runtime/.eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
"rules": {
"semi": "off",
"comma-dangle": "off",
"indent": [ "error", 2 ],
"indent": [ "error", 2 , { "SwitchCase" : 1 }],
"camelcase": "off",
"max-len": [ "error", { "code": 300 } ]
},
"parserOptions": {
"ecmaVersion": 2019
"ecmaVersion": 2021
}
}
2 changes: 1 addition & 1 deletion eo2js-runtime/src/objects/org/eolang/as-phi.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const object = require('../../../runtime/object')
const {LAMBDA} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');

/**
* As_phi.
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/bytes$and.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const bytesOf = require('../../../runtime/bytes-of');
const dataized = require('../../../runtime/dataized');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');

/**
* Bytes.and.
Expand All @@ -14,7 +14,7 @@ const bytes$and = function() {
obj.attrs['b'] = at_void('b')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
bytesOf(dataized(self.take(RHO)))
bytesOf.bytes(dataized(self.take(RHO)))
.and(dataized(self.take('b')))
.asBytes()
)
Expand Down
2 changes: 1 addition & 1 deletion eo2js-runtime/src/objects/org/eolang/bytes$concat.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const dataized = require('../../../runtime/dataized');

/**
Expand Down
2 changes: 1 addition & 1 deletion eo2js-runtime/src/objects/org/eolang/bytes$eq.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const dataized = require('../../../runtime/dataized');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');

/**
* Bytes.eq.
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/bytes$not.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const bytesOf = require('../../../runtime/bytes-of');
const dataized = require('../../../runtime/dataized');

Expand All @@ -12,7 +12,7 @@ const bytes$not = function() {
const obj = object('bytes$not')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
bytesOf(dataized(self.take(RHO))).not().asBytes()
bytesOf.bytes(dataized(self.take(RHO))).not().asBytes()
)
}
return obj
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/bytes$or.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const bytesOf = require('../../../runtime/bytes-of');
const dataized = require('../../../runtime/dataized');

Expand All @@ -14,7 +14,7 @@ const bytes$or = function() {
obj.attrs['b'] = at_void('b')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
bytesOf(dataized(self.take(RHO)))
bytesOf.bytes(dataized(self.take(RHO)))
.or(dataized(self.take('b')))
.asBytes()
)
Expand Down
7 changes: 4 additions & 3 deletions eo2js-runtime/src/objects/org/eolang/bytes$right.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data, INT} = require('../../../runtime/data');
const {NUMBER} = require('../../../runtime/types');
const bytesOf = require('../../../runtime/bytes-of');
const dataized = require('../../../runtime/dataized');
const data = require('../../../runtime/data')

/**
* Bytes.right.
Expand All @@ -14,8 +15,8 @@ const bytes$right = function() {
obj.attrs['x'] = at_void('x')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
bytesOf(dataized(self.take(RHO)))
.shift(dataized(self.take('x'), INT))
bytesOf.bytes(dataized(self.take(RHO)))
.shift(dataized(self.take('x'), NUMBER))
.asBytes()
)
}
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/bytes$size.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const dataized = require('../../../runtime/dataized');

/**
Expand All @@ -11,7 +11,7 @@ const bytes$size = function() {
const obj = object('bytes$size')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
BigInt(dataized(self.take(RHO)).length)
dataized(self.take(RHO)).length
)
}
return obj
Expand Down
7 changes: 4 additions & 3 deletions eo2js-runtime/src/objects/org/eolang/bytes$slice.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data, INT} = require('../../../runtime/data');
const {NUMBER} = require('../../../runtime/types');
const dataized = require('../../../runtime/dataized');
const data = require('../../../runtime/data')

/**
* Bytes.slice.
Expand All @@ -13,10 +14,10 @@ const bytes$slice = function() {
obj.attrs['start'] = at_void('start')
obj.attrs['len'] = at_void('len')
obj.assets[LAMBDA] = function(self) {
const start = dataized(self.take('start'), INT)
const start = dataized(self.take('start'), NUMBER)
return data.toObject(
dataized(self.take(RHO)).slice(
Number(start), Number(start + dataized(self.take('len'), INT))
Number(start), Number(start + dataized(self.take('len'), NUMBER))
)
)
}
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/bytes$xor.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const bytesOf = require('../../../runtime/bytes-of');
const dataized = require('../../../runtime/dataized');

Expand All @@ -14,7 +14,7 @@ const bytes$xor = function() {
obj.attrs['b'] = at_void('b')
obj.assets[LAMBDA] = function(self) {
return data.toObject(
bytesOf(dataized(self.take(RHO)))
bytesOf.bytes(dataized(self.take(RHO)))
.xor(dataized(self.take('b')))
.asBytes()
)
Expand Down
5 changes: 3 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/cage$encaged$encage.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const at_void = require('../../../runtime/attribute/at-void');
const cages = require('../../../runtime/cages');
const dataized = require('../../../runtime/dataized');
const {INT, data} = require('../../../runtime/data');
const {NUMBER} = require('../../../runtime/types');
const data = require('../../../runtime/data')

/**
* Cage.encaged.encage.
Expand All @@ -14,7 +15,7 @@ const cage$encaged$encage = function() {
obj.attrs['object'] = at_void('object')
obj.assets[LAMBDA] = function(self) {
cages.encage(
Number(dataized(self.take(RHO).take('locator'), INT)),
dataized(self.take(RHO).take('locator'), NUMBER),
self.take('object')
);
return data.toObject(true)
Expand Down
6 changes: 2 additions & 4 deletions eo2js-runtime/src/objects/org/eolang/cage$encaged$φ.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const dataized = require('../../../runtime/dataized');
const {INT} = require('../../../runtime/data');
const {NUMBER} = require('../../../runtime/types');
const {traced} = require('../../../runtime/traced');
const cages = require('../../../runtime/cages');

Expand All @@ -12,9 +12,7 @@ const cages = require('../../../runtime/cages');
const cage$encaged$φ = function() {
const obj = object('cage$encaged$φ')
obj.assets[LAMBDA] = function(self) {
const locator = Number(
dataized(self.take(RHO).take('locator'), INT)
)
const locator = dataized(self.take(RHO).take('locator'), NUMBER)
return traced(cages.get(locator), locator)
}
return obj
Expand Down
4 changes: 2 additions & 2 deletions eo2js-runtime/src/objects/org/eolang/cage$φ.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const object = require('../../../runtime/object')
const {LAMBDA, RHO} = require('../../../runtime/attribute/specials');
const {data} = require('../../../runtime/data');
const data = require('../../../runtime/data');
const cages = require('../../../runtime/cages');

/**
Expand All @@ -13,7 +13,7 @@ const cage$φ = function() {
const rho = self.take(RHO)
return rho.take('encaged').with({
locator: data.toObject(
BigInt(cages.init(rho.take('object')))
cages.init(rho.take('object'))
)
})
}
Expand Down
22 changes: 0 additions & 22 deletions eo2js-runtime/src/objects/org/eolang/dataized.js

This file was deleted.

24 changes: 24 additions & 0 deletions eo2js-runtime/src/objects/org/eolang/fs/dir$made$mkdir.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const object = require('../../../../runtime/object')
const {LAMBDA, RHO} = require('../../../../runtime/attribute/specials');
const {STRING} = require('../../../../runtime/types');
const fs = require('fs');
const dataized = require('../../../../runtime/dataized');
const data = require('../../../../runtime/data')

/**
* Dir.made.mkdir.
* @return {Object} - Dir.made.mkdir object
*/
const dir$made$mkdir = function() {
const obj = object('dir$made$mkdir')
obj.assets[LAMBDA] = function(self) {
fs.mkdirSync(
String(dataized(self.take(RHO).take(RHO).take('file'), STRING)),
{recursive: true}
)
return data.toObject(true)
}
return obj
}

module.exports = dir$made$mkdir
69 changes: 69 additions & 0 deletions eo2js-runtime/src/objects/org/eolang/fs/dir$tmpfile$touch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
const object = require('../../../../runtime/object')
const {LAMBDA, RHO} = require('../../../../runtime/attribute/specials');
const {STRING} = require('../../../../runtime/types');
const fs = require('fs');
const path = require('path');
const dataized = require('../../../../runtime/dataized');
const data = require('../../../../runtime/data')

/**
* Random chars sequence.
* @type {string}
*/
const RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

/**
* Random name generator based on crypto.
* Adapted from https://github.com/raszi/node-tmp/blob/5f0b2525ed6f6a977ea0cc272d4903d9d2216059/lib/tmp.js#L411
* @param {number} amount - Amount of generated name
* @return {string} - The generated random name
*/
function randomChars(amount) {
const value = []
let rnd
try {
rnd = crypto.randomBytes(amount);
} catch (e) {
rnd = crypto.pseudoRandomBytes(amount);
}
for (let idx = 0; idx < amount; idx++) {
value.push(RANDOM_CHARS[rnd[idx] % RANDOM_CHARS.length]);
}
return value.join('');
}

/**
* Generate temporary file name full path.
* @param {string} dir - Directory
* @return {string} - Temporary file name full path
*/
function tmpfilePath(dir) {
const name = [
'tmp-',
process.pid,
'-',
randomChars(12),
].join('');
return path.join(dir, name);
}

/**
* Dir.tmpfile.touch.
* @return {Object} - Dir.tmpfile.touch object
*/
const dir$tmpfile$touch = function() {
const obj = object('dir$tmpfile$touch')
obj.assets[LAMBDA] = function(self) {
const path = tmpfilePath(
dataized(self.take(RHO).take(RHO).take('path'), STRING)
)
fs.appendFileSync(
tmpfilePath(path),
''
)
return data.toObject(path)
}
return obj
}

module.exports = dir$tmpfile$touch
24 changes: 24 additions & 0 deletions eo2js-runtime/src/objects/org/eolang/fs/dir$walk.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const object = require('../../../../runtime/object')
const {LAMBDA} = require('../../../../runtime/attribute/specials');
const at_void = require('../../../../runtime/attribute/at-void');
const ErFailure = require('../../../../runtime/error/ErFailure');

/**
* Dir.walk.
* @return {Object} - Dir.walk object
* @todo #3:30min Implement dir$walk atom. We need to implement the atom and make sure it
* works. For the details of implementation check the Java analogue on
* https://github.com/objectionary/eo/tree/master/eo-runtime/src/main/java/EOorg/EOeolang
*/
const dir$walk = function() {
const obj = object('dir$walk')
obj.attrs['glob'] = at_void('glob')
obj.assets[LAMBDA] = function(_) {
throw new ErFailure(
`Atom dir$walk is not implemented yet`
)
}
return obj
}

module.exports = dir$walk
24 changes: 24 additions & 0 deletions eo2js-runtime/src/objects/org/eolang/fs/file$deleted$delete.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const object = require('../../../../runtime/object')
const {LAMBDA, RHO} = require('../../../../runtime/attribute/specials');
const {STRING} = require('../../../../runtime/types');
const fs = require('fs');
const dataized = require('../../../../runtime/dataized');
const data = require('../../../../runtime/data')

/**
* File.deleted.delete.
* @return {Object} - File.deleted.delete object
*/
const file$deleted$delete = function() {
const obj = object('file$deleted$delete')
obj.assets[LAMBDA] = function(self) {
fs.rmSync(
String(dataized(self.take(RHO).take(RHO).take('path'), STRING)),
{recursive: true}
)
return data.toObject(true)
}
return obj
}

module.exports = file$deleted$delete
Loading

12 comments on commit 5ec35f4

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-432203ad disappeared from eo2js-runtime/src/objects/org/eolang/io/stdin$next_line.js), that's why I closed #57. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-81f48fea disappeared from eo2js-runtime/src/objects/org/eolang/io/stdin$φ.js), that's why I closed #58. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-5a478edf disappeared from eo2js/test/it/runtime-tests.test.js), that's why I closed #71. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-ff9a15e3 disappeared from eo2js-runtime/src/runtime/bytes-of.js), that's why I closed #73. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-d0b4ae5d discovered in eo2js/test/it/runtime-tests.test.js) and submitted as #109. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-5dd33586 discovered in eo2js-runtime/src/objects/org/eolang/fs/dir$walk.js) and submitted as #110. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-fb434073 discovered in eo2js-runtime/src/objects/org/eolang/fs/file$open$file-stream$read$read-bytes.js) and submitted as #111. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-2d5631ef discovered in eo2js-runtime/src/objects/org/eolang/fs/file$open$file-stream$write$written-bytes.js) and submitted as #112. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-19bd2881 discovered in eo2js-runtime/src/objects/org/eolang/fs/file$open$process-file.js) and submitted as #113. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Puzzle 3-6e5ab181 discovered in eo2js-runtime/src/objects/org/eolang/sys/posix$φ.js) and submitted as #114. Please, remember that the puzzle was not necessarily added in this particular commit. Maybe it was added earlier, but we discovered it only now.

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to github. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

POST https://api.github.com/repos/objectionary/eo2js/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID...

Please, copy and paste this stack trace to GitHub:

Octokit::TooManyRequests
POST https://api.github.com/repos/objectionary/eo2js/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID A012:373AEB:35C4EC0:676E048:67224034 and timestamp 2024-10-30 14:18:28 UTC. // See: https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/response/raise_error.rb:14:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:18:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/response.rb:42:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:17:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:61:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/rack_builder.rb:152:in `build_response'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:444:in `run_request'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:280:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/sawyer-0.9.2/lib/sawyer/agent.rb:99:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:156:in `request'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:28:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/client/issues.rb:102:in `create_issue'
/app/objects/vcs/github.rb:75:in `create_issue'
/app/objects/tickets/tickets.rb:44:in `submit'
/app/objects/tickets/milestone_tickets.rb:35:in `submit'
/app/objects/tickets/logged_tickets.rb:50:in `submit'
/app/objects/tickets/tagged_tickets.rb:35:in `submit'
/app/objects/tickets/commit_tickets.rb:36:in `submit'
/app/objects/tickets/emailed_tickets.rb:35:in `submit'
/app/objects/tickets/sentry_tickets.rb:45:in `submit'
/app/objects/puzzles.rb:114:in `block in expose'
/app/objects/puzzles.rb:102:in `loop'
/app/objects/puzzles.rb:102:in `expose'
/app/objects/puzzles.rb:49:in `deploy'
/app/objects/jobs/job.rb:38:in `proceed'
/app/objects/jobs/job_starred.rb:32:in `proceed'
/app/objects/jobs/job_recorded.rb:31:in `proceed'
/app/objects/jobs/job_emailed.rb:33:in `proceed'
/app/objects/jobs/job_commiterrors.rb:33:in `proceed'
/app/objects/jobs/job_detached.rb:48:in `exclusive'
/app/objects/jobs/job_detached.rb:36:in `block in proceed'
/app/objects/jobs/job_detached.rb:36:in `fork'
/app/objects/jobs/job_detached.rb:36:in `proceed'
/app/0pdd.rb:549:in `process_request'
/app/0pdd.rb:380:in `block in <top (required)>'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `block in compile!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1089:in `route_eval'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1120:in `block in process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1069:in `block in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `each'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1190:in `block in dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1185:in `dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `block in call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:990:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/rewindable_input.rb:25:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/deflater.rb:47:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/xss_header.rb:20:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/path_traversal.rb:18:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/json_csrf.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/frame_options.rb:33:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/logger.rb:19:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/common_logger.rb:43:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:266:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:259:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/head.rb:15:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/method_override.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:224:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:2115:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1890:in `synchronize'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rackup-2.1.0/lib/rackup/handler/webrick.rb:111:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:140:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:96:in `run'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

@0pdd
Copy link
Collaborator

@0pdd 0pdd commented on 5ec35f4 Oct 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to github. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

POST https://api.github.com/repos/objectionary/eo2js/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID...

Please, copy and paste this stack trace to GitHub:

Octokit::TooManyRequests
POST https://api.github.com/repos/objectionary/eo2js/issues: 403 - You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later. If you reach out to GitHub Support for help, please include the request ID A086:106572:359DC08:6723F27:67224037 and timestamp 2024-10-30 14:18:31 UTC. // See: https://docs.github.com/rest/overview/rate-limits-for-the-rest-api#about-secondary-rate-limits
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/response/raise_error.rb:14:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:18:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/response.rb:42:in `on_complete'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/middleware.rb:17:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:73:in `perform_with_redirection'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/middleware/follow_redirects.rb:61:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/rack_builder.rb:152:in `build_response'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:444:in `run_request'
/app/vendor/bundle/ruby/3.1.0/gems/faraday-2.9.0/lib/faraday/connection.rb:280:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/sawyer-0.9.2/lib/sawyer/agent.rb:99:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:156:in `request'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/connection.rb:28:in `post'
/app/vendor/bundle/ruby/3.1.0/gems/octokit-8.1.0/lib/octokit/client/issues.rb:102:in `create_issue'
/app/objects/vcs/github.rb:75:in `create_issue'
/app/objects/tickets/tickets.rb:44:in `submit'
/app/objects/tickets/milestone_tickets.rb:35:in `submit'
/app/objects/tickets/logged_tickets.rb:50:in `submit'
/app/objects/tickets/tagged_tickets.rb:35:in `submit'
/app/objects/tickets/commit_tickets.rb:36:in `submit'
/app/objects/tickets/emailed_tickets.rb:35:in `submit'
/app/objects/tickets/sentry_tickets.rb:45:in `submit'
/app/objects/puzzles.rb:114:in `block in expose'
/app/objects/puzzles.rb:102:in `loop'
/app/objects/puzzles.rb:102:in `expose'
/app/objects/puzzles.rb:49:in `deploy'
/app/objects/jobs/job.rb:38:in `proceed'
/app/objects/jobs/job_starred.rb:32:in `proceed'
/app/objects/jobs/job_recorded.rb:31:in `proceed'
/app/objects/jobs/job_emailed.rb:33:in `proceed'
/app/objects/jobs/job_commiterrors.rb:33:in `proceed'
/app/objects/jobs/job_detached.rb:48:in `exclusive'
/app/objects/jobs/job_detached.rb:36:in `block in proceed'
/app/objects/jobs/job_detached.rb:36:in `fork'
/app/objects/jobs/job_detached.rb:36:in `proceed'
/app/0pdd.rb:549:in `process_request'
/app/0pdd.rb:380:in `block in <top (required)>'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `block in compile!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1089:in `route_eval'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1120:in `block in process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1069:in `block in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `each'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1190:in `block in dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1185:in `dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `block in call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:990:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/rewindable_input.rb:25:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/deflater.rb:47:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/xss_header.rb:20:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/path_traversal.rb:18:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/json_csrf.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/frame_options.rb:33:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/logger.rb:19:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/common_logger.rb:43:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:266:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:259:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/head.rb:15:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/method_override.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:224:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:2115:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1890:in `synchronize'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rackup-2.1.0/lib/rackup/handler/webrick.rb:111:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:140:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:96:in `run'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

Please sign in to comment.