mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:34:57 +00:00
Meta: Ensure long messages fit in commit tweet
Abbreviating the commit message to 240 characters was not always enough. As a bonus, we now add an ellipsis to abbreviated messages.
This commit is contained in:
parent
22b0cbe1fe
commit
0e680cb17a
1 changed files with 11 additions and 5 deletions
|
@ -1,6 +1,9 @@
|
|||
const fs = require("fs");
|
||||
const Twit = require("twit");
|
||||
const { CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET } = process.env;
|
||||
const tweetLength = 280;
|
||||
// Twitter always considers t.co links to be 23 chars, see https://help.twitter.com/en/using-twitter/how-to-tweet-a-link
|
||||
const twitterLinkLength = 23;
|
||||
|
||||
const T = new Twit({
|
||||
consumer_key: CONSUMER_KEY,
|
||||
|
@ -13,11 +16,14 @@ const T = new Twit({
|
|||
const githubEvent = JSON.parse(fs.readFileSync(0).toString());
|
||||
const tweets = [];
|
||||
for (const commit of githubEvent["commits"]) {
|
||||
tweets.push(
|
||||
`${commit["message"].substring(0, 240)}\nAuthor: ${commit["author"]["name"]}\n${
|
||||
commit["url"]
|
||||
}`
|
||||
);
|
||||
const authorLine = `Author: ${commit["author"]["name"]}`;
|
||||
const maxMessageLength = tweetLength - authorLine.length - twitterLinkLength - 2; // -2 for newlines
|
||||
const commitMessage =
|
||||
commit["message"].length > maxMessageLength
|
||||
? commit["message"].substring(0, maxMessageLength - 2) + "…" // Ellipsis counts as 2 characters
|
||||
: commit["message"];
|
||||
|
||||
tweets.push(`${commitMessage}\n${authorLine}\n${commit["url"]}`);
|
||||
}
|
||||
for (const tweet of tweets) {
|
||||
try {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue