Use w3m for archiving
This commit is contained in:
@@ -1,105 +1,106 @@
|
||||
#[1]Viget Articles
|
||||
[1] Skip to Main Content
|
||||
[2] Viget
|
||||
|
||||
IFRAME: [2]https://www.googletagmanager.com/ns.html?id=GTM-5V7V
|
||||
|
||||
[3]Skip to Main Content
|
||||
|
||||
[4]Viget
|
||||
|
||||
* [5]Work
|
||||
* [6]Services
|
||||
* [7]Articles
|
||||
* [8]Careers
|
||||
* [9]Contact
|
||||
* (BUTTON) Open Menu
|
||||
• [3] Work
|
||||
• [4] Services
|
||||
• [5] Articles
|
||||
• [6] Careers
|
||||
• [7] Contact
|
||||
• Open Menu
|
||||
|
||||
Navigation
|
||||
|
||||
[10]Viget (BUTTON) Close
|
||||
* Practice
|
||||
* [11]Work
|
||||
* [12]Services
|
||||
* [13]Articles
|
||||
[9] Viget Close
|
||||
|
||||
We’re a full-service digital agency that’s been helping clients make
|
||||
lasting change since 1999.
|
||||
[14]Contact Us
|
||||
• Practice
|
||||
• [11] Work
|
||||
• [12] Services
|
||||
• [13] Articles
|
||||
|
||||
We’re a full-service digital agency that’s been helping clients make lasting
|
||||
change since 1999.
|
||||
|
||||
[14] Contact Us
|
||||
|
||||
People
|
||||
|
||||
* [15]Company
|
||||
* [16]Careers
|
||||
* [17]Code of Ethics
|
||||
* [18]Diversity & Inclusion
|
||||
• [15]Company
|
||||
• [16]Careers
|
||||
• [17]Code of Ethics
|
||||
• [18]Diversity & Inclusion
|
||||
|
||||
More
|
||||
|
||||
* [19]Pointless Corp.
|
||||
* [20]Explorations
|
||||
* [21]Code at Viget
|
||||
• [19]Pointless Corp.
|
||||
• [20]Explorations
|
||||
• [21]Code at Viget
|
||||
|
||||
Featured
|
||||
|
||||
Read the Article: Revolutionizing the Web
|
||||
[22]
|
||||
Read the Article: Revolutionizing the Web
|
||||
|
||||
Newsletter
|
||||
Newsletter
|
||||
|
||||
Revolutionizing the Web
|
||||
|
||||
Read the Article: Elephants, Squirrels, Porcupines, and Zombies Can
|
||||
Help Your Team Thrive
|
||||
[23]
|
||||
Read the Article: Elephants, Squirrels, Porcupines, and Zombies Can Help Your
|
||||
Team Thrive
|
||||
|
||||
Article
|
||||
Article
|
||||
|
||||
Elephants, Squirrels, Porcupines, and Zombies Can Help Your Team Thrive
|
||||
|
||||
Simple Commit Linting for Issue Number in GitHub Actions
|
||||
|
||||
[22]David Eisinger
|
||||
[Git-Tips-030718]
|
||||
[24] David Eisinger
|
||||
|
||||
[23]David Eisinger, Development Director
|
||||
[25]David Eisinger, Development Director
|
||||
|
||||
Article Categories: [24]#Code, [25]#Tooling
|
||||
Article Categories: [26] #Code, [27] #Tooling
|
||||
|
||||
Posted on April 28, 2023
|
||||
* Share
|
||||
* Share
|
||||
* Post
|
||||
Posted on April 28, 2023
|
||||
|
||||
Including relevant ticket numbers in your git commit messages is a gift
|
||||
to your future self. Here's how to ensure you do it consistently.
|
||||
• [28]
|
||||
Share
|
||||
• [29]
|
||||
Share
|
||||
• [30]
|
||||
Post
|
||||
|
||||
I n c l u d i n g r e l e v a n t t i c k e t n u m b e r s i n y o u r
|
||||
g i t c o m m i t m e s s a g e s i s a g i f t t o y o u r f u t u r e
|
||||
s e l f . H e r e ' s h o w t o e n s u r e y o u d o i t c o n s i s t
|
||||
e n t l y .
|
||||
Including relevant ticket numbers in your git commit messages is a gift to your
|
||||
future self. Here's how to ensure you do it consistently.
|
||||
|
||||
I don't believe there is a right way to do software; I think teams can
|
||||
be effective (or ineffective!) in a lot of different ways using all
|
||||
sorts of methodologies and technologies. But one hill upon which I will
|
||||
die is this: referencing tickets in commit messages pays enormous
|
||||
dividends over the long haul and you should always do it. As someone
|
||||
who regularly commits code to apps created in the Obama era, nothing
|
||||
warms my heart like running [26]:Git blame on some confusing code and
|
||||
seeing a reference to a GitHub Issue where I can get the necessary
|
||||
context. And, conversely, nothing sparks nerd rage like fix bug or PR
|
||||
feedback or, heaven forbid, oops.
|
||||
I n c l u d i n g r e l e v a n t t i c k e t n u m b e r s i n y o u r g i t c
|
||||
o m m i t m e s s a g e s i s a g i f t t o y o u r f u t u r e s e l f . H e r
|
||||
e ' s h o w t o e n s u r e y o u d o i t c o n s i s t e n t l y .
|
||||
|
||||
In a recent [27]project retrospective, the team identified that we
|
||||
weren't being as consistent with this as we'd like, and decided to take
|
||||
action. I figured some sort of commit linting would be a good candidate
|
||||
for [28]continuous integration — when a team member pushes a branch up
|
||||
to GitHub, check the commits and make sure they include a reference to
|
||||
a ticket.
|
||||
I don't believe there is a right way to do software; I think teams can be
|
||||
effective (or ineffective!) in a lot of different ways using all sorts of
|
||||
methodologies and technologies. But one hill upon which I will die is this:
|
||||
referencing tickets in commit messages pays enormous dividends over the long
|
||||
haul and you should always do it. As someone who regularly commits code to apps
|
||||
created in the Obama era, nothing warms my heart like running [31]:Git blame on
|
||||
some confusing code and seeing a reference to a GitHub Issue where I can get
|
||||
the necessary context. And, conversely, nothing sparks nerd rage like fix bug
|
||||
or PR feedback or, heaven forbid, oops.
|
||||
|
||||
In a recent [32]project retrospective, the team identified that we weren't
|
||||
being as consistent with this as we'd like, and decided to take action. I
|
||||
figured some sort of commit linting would be a good candidate for [33]
|
||||
continuous integration — when a team member pushes a branch up to GitHub, check
|
||||
the commits and make sure they include a reference to a ticket.
|
||||
|
||||
I looked into [34]commitlint, but I found it a lot more opinionated than I am —
|
||||
I really just want to make sure commits begin with either [#XXX] (an issue
|
||||
number) or [n/a] — and rather difficult to reconfigure. After struggling with
|
||||
it for a few hours, I decided to just DIY it with a simple inline script. If
|
||||
you just want something you can drop into a GitHub Actions YAML file to lint
|
||||
your commits, here it is (but stick around and I'll break it down and then show
|
||||
how to do it in a few other languages):
|
||||
|
||||
I looked into [29]commitlint, but I found it a lot more opinionated
|
||||
than I am — I really just want to make sure commits begin with either
|
||||
[#XXX] (an issue number) or [n/a] — and rather difficult to
|
||||
reconfigure. After struggling with it for a few hours, I decided to
|
||||
just DIY it with a simple inline script. If you just want something you
|
||||
can drop into a GitHub Actions YAML file to lint your commits, here it
|
||||
is (but stick around and I'll break it down and then show how to do it
|
||||
in a few other languages):
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
@@ -121,24 +122,23 @@ Simple Commit Linting for Issue Number in GitHub Actions
|
||||
end
|
||||
'
|
||||
|
||||
A few notes:
|
||||
* That fetch-depth: 0 is essential in order to be able to compare the
|
||||
branch being built with main (or whatever you call your primary
|
||||
development branch) — by default, your Action only knows about the
|
||||
current branch.
|
||||
* git log --format=format:%s HEAD ^origin/main is going to give you
|
||||
the first line of every commit that's in the source branch but not
|
||||
in main; those are the commits we want to lint.
|
||||
* With that list of commits, we loop through each message and compare
|
||||
it with the regular expression /^\[(#\d+|n\/a)\]/, i.e. does this
|
||||
message begin with either [#XXX] (where X are digits) or [n/a]?
|
||||
* If any message does not match, print an error out to standard error
|
||||
(that's warn) and exit with a non-zero status (so that the GitHub
|
||||
Action fails).
|
||||
A few notes:
|
||||
|
||||
• That fetch-depth: 0 is essential in order to be able to compare the branch
|
||||
being built with main (or whatever you call your primary development
|
||||
branch) — by default, your Action only knows about the current branch.
|
||||
• git log --format=format:%s HEAD ^origin/main is going to give you the first
|
||||
line of every commit that's in the source branch but not in main; those are
|
||||
the commits we want to lint.
|
||||
• With that list of commits, we loop through each message and compare it with
|
||||
the regular expression /^\[(#\d+|n\/a)\]/, i.e. does this message begin
|
||||
with either [#XXX] (where X are digits) or [n/a]?
|
||||
• If any message does not match, print an error out to standard error (that's
|
||||
warn) and exit with a non-zero status (so that the GitHub Action fails).
|
||||
|
||||
If you want to try this out locally (or perhaps modify the script to validate
|
||||
messages in a different way), here's a docker run command you can use:
|
||||
|
||||
If you want to try this out locally (or perhaps modify the script to
|
||||
validate messages in a different way), here's a docker run command you
|
||||
can use:
|
||||
echo '[#123] Message 1
|
||||
[n/a] Message 2
|
||||
[#122] Message 3' | docker run --rm -i ruby:3.2.1 ruby -e '
|
||||
@@ -149,66 +149,64 @@ echo '[#123] Message 1
|
||||
end
|
||||
'
|
||||
|
||||
Note that running this command should output nothing since these are
|
||||
all valid commit messages; modify one of the messages if you want to
|
||||
see the failure state.
|
||||
Note that running this command should output nothing since these are all valid
|
||||
commit messages; modify one of the messages if you want to see the failure
|
||||
state.
|
||||
|
||||
Other Languages [30]#
|
||||
Other Languages [35]#
|
||||
|
||||
Since there's a very real possibility you might not otherwise install
|
||||
Ruby in your GitHub Actions, and because I weirdly enjoy writing the
|
||||
same code in a bunch of different languages, here are scripts for
|
||||
several of Viget's other favorites:
|
||||
Since there's a very real possibility you might not otherwise install Ruby in
|
||||
your GitHub Actions, and because I weirdly enjoy writing the same code in a
|
||||
bunch of different languages, here are scripts for several of Viget's other
|
||||
favorites:
|
||||
|
||||
JavaScript [31]#
|
||||
JavaScript [36]#
|
||||
|
||||
git log --format=format:%s HEAD ^origin/main | node -e "
|
||||
let msgs = require('fs').readFileSync(0).toString().trim().split('\n');
|
||||
for (let msg of msgs) {
|
||||
if (msg.match(/^\[(#\d+|n\/a)\]/)) { continue; }
|
||||
process.stderr.write('Commits must begin with [#XXX] or [n/a] (' + msg + ')'
|
||||
);
|
||||
process.stderr.write('Commits must begin with [#XXX] or [n/a] (' + msg + ')');
|
||||
process.exit(1);
|
||||
}
|
||||
"
|
||||
|
||||
To test:
|
||||
To test:
|
||||
|
||||
echo '[#123] Message 1
|
||||
[n/a] Message 2
|
||||
[#122] Message 3' | docker run --rm -i node:18.15.0 node -e "
|
||||
let msgs = require('fs').readFileSync(0).toString().trim().split('\n');
|
||||
for (let msg of msgs) {
|
||||
if (msg.match(/^\[(#\d+|n\/a)\]/)) { continue; }
|
||||
process.stderr.write('Commits must begin with [#XXX] or [n/a] (' + msg + ')'
|
||||
);
|
||||
process.stderr.write('Commits must begin with [#XXX] or [n/a] (' + msg + ')');
|
||||
process.exit(1);
|
||||
}
|
||||
"
|
||||
|
||||
PHP [32]#
|
||||
PHP [37]#
|
||||
|
||||
git log --format=format:%s HEAD ^origin/main | php -r '
|
||||
while ($msg = fgets(STDIN)) {
|
||||
if (preg_match("/^\[(#\d+|n\/a)\]/", $msg)) { continue; }
|
||||
fwrite(STDERR, "Commits must begin with #[XXX] or [n/a] (" . trim($msg) . ")
|
||||
\n");
|
||||
fwrite(STDERR, "Commits must begin with #[XXX] or [n/a] (" . trim($msg) . ")\n");
|
||||
exit(1);
|
||||
}
|
||||
'
|
||||
|
||||
To test:
|
||||
To test:
|
||||
|
||||
echo '[#123] Message 1
|
||||
[n/a] Message 2
|
||||
[#122] Message 3' | docker run --rm -i php:8.2.4 php -r '
|
||||
while ($msg = fgets(STDIN)) {
|
||||
if (preg_match("/^\[(#\d+|n\/a)\]/", $msg)) { continue; }
|
||||
fwrite(STDERR, "Commits must begin with #[XXX] or [n/a] (" . trim($msg) . ")
|
||||
\n");
|
||||
fwrite(STDERR, "Commits must begin with #[XXX] or [n/a] (" . trim($msg) . ")\n");
|
||||
exit(1);
|
||||
}
|
||||
'
|
||||
|
||||
Python [33]#
|
||||
Python [38]#
|
||||
|
||||
git log --format=format:%s HEAD ^origin/main | python -c '
|
||||
import sys
|
||||
@@ -216,12 +214,12 @@ import re
|
||||
for msg in sys.stdin:
|
||||
if re.match(r"^\[(#\d+|n\/a)\]", msg):
|
||||
continue
|
||||
print("Commits must begin with #[xxx] or [n/a] (%s)" % msg.strip(), file=sys
|
||||
.stderr)
|
||||
print("Commits must begin with #[xxx] or [n/a] (%s)" % msg.strip(), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
'
|
||||
|
||||
To test:
|
||||
To test:
|
||||
|
||||
echo '[#123] Message 1
|
||||
[n/a] Message 2
|
||||
[#122] Message 3' | docker run --rm -i python:3.11.3 python -c '
|
||||
@@ -230,196 +228,207 @@ import re
|
||||
for msg in sys.stdin:
|
||||
if re.match(r"^\[(#\d+|n\/a)\]", msg):
|
||||
continue
|
||||
print("Commits must begin with #[xxx] or [n/a] (%s)" % msg.strip(), file=sys
|
||||
.stderr)
|
||||
print("Commits must begin with #[xxx] or [n/a] (%s)" % msg.strip(), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
'
|
||||
__________________________________________________________________
|
||||
|
||||
So there you have it: simple GitHub Actions commit linting in most of
|
||||
Viget's favorite languages (try as I might, I could not figure out how
|
||||
to do this in [34]Elixir, at least not in a concise way). As I said up
|
||||
front, writing good tickets and then referencing them in commit
|
||||
messages so that they can easily be surfaced with git blame pays huge
|
||||
dividends over the life of a codebase. If you're not already in the
|
||||
habit of doing this, well, the best time to start was Initial commit,
|
||||
but the second best time is today.
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
[35]David Eisinger
|
||||
So there you have it: simple GitHub Actions commit linting in most of Viget's
|
||||
favorite languages (try as I might, I could not figure out how to do this in
|
||||
[39]Elixir, at least not in a concise way). As I said up front, writing good
|
||||
tickets and then referencing them in commit messages so that they can easily be
|
||||
surfaced with git blame pays huge dividends over the life of a codebase. If
|
||||
you're not already in the habit of doing this, well, the best time to start was
|
||||
Initial commit, but the second best time is today.
|
||||
|
||||
[36]David is Viget's managing development director. From our Durham,
|
||||
NC, office, he builds high-quality, forward-thinking software for PUMA,
|
||||
the World Wildlife Fund, NFLPA, and many others.
|
||||
[37]More articles by David
|
||||
[40] David Eisinger
|
||||
|
||||
[41]David is Viget's managing development director. From our Durham, NC,
|
||||
office, he builds high-quality, forward-thinking software for PUMA, the World
|
||||
Wildlife Fund, NFLPA, and many others.
|
||||
|
||||
[42]More articles by David
|
||||
|
||||
Related Articles
|
||||
|
||||
* Thoughts on Remix
|
||||
Article
|
||||
• [43]
|
||||
Thoughts on Remix
|
||||
|
||||
Thoughts on Remix
|
||||
Solomon Hawk
|
||||
* Going Headless in 2024: A View of the Headless CMS Landscape
|
||||
Article
|
||||
Article
|
||||
|
||||
Going Headless in 2024: A View of the Headless CMS Landscape
|
||||
Andrew Mosby
|
||||
* Maintenance Matters: Good Tests
|
||||
Article
|
||||
Thoughts on Remix
|
||||
|
||||
Maintenance Matters: Good Tests
|
||||
David Eisinger
|
||||
Solomon Hawk
|
||||
|
||||
• [44]
|
||||
Going Headless in 2024: A View of the Headless CMS Landscape
|
||||
|
||||
Article
|
||||
|
||||
Going Headless in 2024: A View of the Headless CMS Landscape
|
||||
|
||||
Andrew Mosby
|
||||
|
||||
• [45]
|
||||
Maintenance Matters: Good Tests
|
||||
|
||||
Article
|
||||
|
||||
Maintenance Matters: Good Tests
|
||||
|
||||
David Eisinger
|
||||
|
||||
The Viget Newsletter
|
||||
|
||||
Nobody likes popups, so we waited until now to recommend our
|
||||
newsletter, featuring thoughts, opinions, and tools for building a
|
||||
better digital world. [38]Read the current issue.
|
||||
Nobody likes popups, so we waited until now to recommend our newsletter,
|
||||
featuring thoughts, opinions, and tools for building a better digital world.
|
||||
[46]Read the current issue.
|
||||
|
||||
[39]Subscribe Here (opens in new window)
|
||||
[47]Subscribe Here (opens in new window)
|
||||
|
||||
Site Footer
|
||||
|
||||
Have an unsolvable problem or audacious idea?
|
||||
Have an unsolvable problem or audacious idea?
|
||||
|
||||
Let’s get to work
|
||||
[40]Contact Us [41]hello@viget.com [42]703.891.0670
|
||||
Let’s get to work
|
||||
|
||||
* Practice
|
||||
* [43]Work
|
||||
* [44]Services
|
||||
* [45]Articles
|
||||
[48] Contact Us [49] hello@viget.com [50] 703.891.0670
|
||||
|
||||
* People
|
||||
* [46]Company
|
||||
* [47]Careers
|
||||
* [48]Code of Ethics
|
||||
* [49]Diversity & Inclusion
|
||||
• Practice
|
||||
• [51]Work
|
||||
• [52]Services
|
||||
• [53]Articles
|
||||
|
||||
* More
|
||||
* [50]Pointless Corp.
|
||||
* [51]Explorations
|
||||
* [52]Code at Viget
|
||||
• People
|
||||
• [54]Company
|
||||
• [55]Careers
|
||||
• [56]Code of Ethics
|
||||
• [57]Diversity & Inclusion
|
||||
|
||||
• More
|
||||
• [58]Pointless Corp.
|
||||
• [59]Explorations
|
||||
• [60]Code at Viget
|
||||
|
||||
Sign Up For Our Newsletter
|
||||
|
||||
A curated periodical featuring thoughts, opinions, and tools for
|
||||
building a better digital world.
|
||||
[53]Check it out
|
||||
A curated periodical featuring thoughts, opinions, and tools for building a
|
||||
better digital world.
|
||||
|
||||
[61] Check it out
|
||||
|
||||
Social Links
|
||||
|
||||
[54]Viget
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
[62] Viget
|
||||
|
||||
• [63]
|
||||
• [64]
|
||||
• [65]
|
||||
• [66]
|
||||
• [67]
|
||||
• [68]
|
||||
|
||||
Office Locations
|
||||
|
||||
* [55]Washington DC Metro
|
||||
* [56]Durham, NC
|
||||
* [57]Boulder, CO
|
||||
* [58]Chattanooga, TN
|
||||
• [69]Washington DC Metro
|
||||
• [70]Durham, NC
|
||||
• [71]Boulder, CO
|
||||
• [72]Chattanooga, TN
|
||||
|
||||
© 1999 – 2024 Viget Labs, LLC. [59]Terms [60]Privacy [61]MRF
|
||||
© 1999 – 2024 Viget Labs, LLC. [73]Terms [74]Privacy [75]MRF
|
||||
|
||||
* [62]Home
|
||||
* [63]Articles
|
||||
* [64]Simple Commit Linting for Issue Number in GitHub Actions
|
||||
• [76]Home
|
||||
• [77]Articles
|
||||
• [78]Simple Commit Linting for Issue Number in GitHub Actions
|
||||
|
||||
[65]Subscribe (opens in a new window)
|
||||
(BUTTON) Share
|
||||
* [66]Share this page
|
||||
* [67]Share this page
|
||||
* [68]Post this page
|
||||
[79] Subscribe (opens in a new window)
|
||||
Share
|
||||
|
||||
References
|
||||
• [81] Share this page
|
||||
• [82] Share this page
|
||||
• [83] Post this page
|
||||
|
||||
Visible links:
|
||||
1. https://feeds.feedburner.com/Viget
|
||||
2. https://www.googletagmanager.com/ns.html?id=GTM-5V7V
|
||||
3. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#content
|
||||
4. https://www.viget.com/
|
||||
5. https://www.viget.com/work/
|
||||
6. https://www.viget.com/services/
|
||||
7. https://www.viget.com/articles/
|
||||
8. https://www.viget.com/careers/
|
||||
9. https://www.viget.com/contact/
|
||||
10. https://www.viget.com/
|
||||
11. https://www.viget.com/work/
|
||||
12. https://www.viget.com/services/
|
||||
13. https://www.viget.com/articles/
|
||||
14. https://www.viget.com/contact/
|
||||
15. https://www.viget.com/about/
|
||||
16. https://www.viget.com/careers/
|
||||
17. https://www.viget.com/code-of-ethics/
|
||||
18. https://www.viget.com/diversity-equity-and-inclusion/
|
||||
19. https://pointlesscorp.com/
|
||||
20. https://explorations.viget.com/
|
||||
21. https://code.viget.com/
|
||||
22. https://www.viget.com/about/team/deisinger/
|
||||
23. https://www.viget.com/about/team/deisinger/
|
||||
24. https://www.viget.com/articles/category/code/
|
||||
25. https://www.viget.com/articles/category/tooling/
|
||||
26. https://github.com/tpope/vim-fugitive#fugitivevim
|
||||
27. https://www.viget.com/articles/get-the-most-out-of-your-internal-retrospectives/
|
||||
28. https://www.viget.com/articles/maintenance-matters-continuous-integration/
|
||||
29. https://commitlint.js.org/
|
||||
30. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#other-languages
|
||||
31. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#javaScript
|
||||
32. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#php
|
||||
33. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#python
|
||||
34. https://elixir-lang.org/
|
||||
35. https://www.viget.com/about/team/deisinger/
|
||||
36. https://www.viget.com/about/team/deisinger/
|
||||
37. https://www.viget.com/about/team/deisinger/
|
||||
38. https://www.viget.com/newsletter
|
||||
39. http://eepurl.com/gtHqsj
|
||||
40. https://www.viget.com/contact/
|
||||
41. mailto:hello@viget.com?subject=Hello, Viget!
|
||||
42. tel:7038910670
|
||||
43. https://www.viget.com/work/
|
||||
44. https://www.viget.com/services/
|
||||
45. https://www.viget.com/articles/
|
||||
46. https://www.viget.com/about/
|
||||
47. https://www.viget.com/careers/
|
||||
48. https://www.viget.com/code-of-ethics/
|
||||
49. https://www.viget.com/diversity-equity-and-inclusion/
|
||||
50. https://pointlesscorp.com/
|
||||
51. https://explorations.viget.com/
|
||||
52. https://code.viget.com/
|
||||
53. https://www.viget.com/newsletter/
|
||||
54. https://www.viget.com/
|
||||
55. https://www.viget.com/dc-metro-hq/
|
||||
56. https://www.viget.com/durham/
|
||||
57. https://www.viget.com/boulder/
|
||||
58. https://www.viget.com/chattanooga/
|
||||
59. https://www.viget.com/terms-conditions/
|
||||
60. https://www.viget.com/privacy-policy/
|
||||
61. https://individual.carefirst.com/individuals-families/mandates-policies/machine-readable-file.page
|
||||
62. https://www.viget.com/
|
||||
63. https://www.viget.com/articles
|
||||
64. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#hero
|
||||
65. http://eepurl.com/gtHqsj
|
||||
66. https://www.facebook.com/sharer/sharer.php?u=https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/
|
||||
67. http://www.linkedin.com/shareArticle?mini=true&url=https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/
|
||||
68. https://x.com/intent/tweet?text=Including relevant ticket numbers in your git commit messages is a gift to your future self. Here's how to ensure you do it consistently. https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/
|
||||
|
||||
Hidden links:
|
||||
70. https://www.viget.com/newsletter/revolutionizing-the-web/
|
||||
71. https://www.viget.com/articles/elephants-squirrels-porcupines-and-zombies-can-help-your-team-thrive/
|
||||
72. https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
73. http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
74. https://x.com/intent/tweet?text=Including%20relevant%20ticket%20numbers%20in%20your%20git%20commit%20messages%20is%20a%20gift%20to%20your%20future%20self.%20Here%27s%20how%20to%20ensure%20you%20do%20it%20consistently.%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
75. https://www.viget.com/articles/thoughts-on-remix/
|
||||
76. https://www.viget.com/articles/a-view-of-the-headless-cms-landscape/
|
||||
77. https://www.viget.com/articles/maintenance-matters-good-tests/
|
||||
78. http://x.com/viget
|
||||
79. https://github.com/vigetlabs
|
||||
80. https://dribbble.com/viget
|
||||
81. https://www.instagram.com/viget/
|
||||
82. https://www.linkedin.com/company/viget-labs
|
||||
83. https://vimeo.com/viget/collections
|
||||
References:
|
||||
|
||||
[1] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#content
|
||||
[2] https://www.viget.com/
|
||||
[3] https://www.viget.com/work/
|
||||
[4] https://www.viget.com/services/
|
||||
[5] https://www.viget.com/articles/
|
||||
[6] https://www.viget.com/careers/
|
||||
[7] https://www.viget.com/contact/
|
||||
[9] https://www.viget.com/
|
||||
[11] https://www.viget.com/work/
|
||||
[12] https://www.viget.com/services/
|
||||
[13] https://www.viget.com/articles/
|
||||
[14] https://www.viget.com/contact/
|
||||
[15] https://www.viget.com/about/
|
||||
[16] https://www.viget.com/careers/
|
||||
[17] https://www.viget.com/code-of-ethics/
|
||||
[18] https://www.viget.com/diversity-equity-and-inclusion/
|
||||
[19] https://pointlesscorp.com/
|
||||
[20] https://explorations.viget.com/
|
||||
[21] https://code.viget.com/
|
||||
[22] https://www.viget.com/newsletter/revolutionizing-the-web/
|
||||
[23] https://www.viget.com/articles/elephants-squirrels-porcupines-and-zombies-can-help-your-team-thrive/
|
||||
[24] https://www.viget.com/about/team/deisinger/
|
||||
[25] https://www.viget.com/about/team/deisinger/
|
||||
[26] https://www.viget.com/articles/category/code/
|
||||
[27] https://www.viget.com/articles/category/tooling/
|
||||
[28] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
[29] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
[30] https://x.com/intent/tweet?text=Including%20relevant%20ticket%20numbers%20in%20your%20git%20commit%20messages%20is%20a%20gift%20to%20your%20future%20self.%20Here%27s%20how%20to%20ensure%20you%20do%20it%20consistently.%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
[31] https://github.com/tpope/vim-fugitive#fugitivevim
|
||||
[32] https://www.viget.com/articles/get-the-most-out-of-your-internal-retrospectives/
|
||||
[33] https://www.viget.com/articles/maintenance-matters-continuous-integration/
|
||||
[34] https://commitlint.js.org/
|
||||
[35] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#other-languages
|
||||
[36] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#javaScript
|
||||
[37] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#php
|
||||
[38] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#python
|
||||
[39] https://elixir-lang.org/
|
||||
[40] https://www.viget.com/about/team/deisinger/
|
||||
[41] https://www.viget.com/about/team/deisinger/
|
||||
[42] https://www.viget.com/about/team/deisinger/
|
||||
[43] https://www.viget.com/articles/thoughts-on-remix/
|
||||
[44] https://www.viget.com/articles/a-view-of-the-headless-cms-landscape/
|
||||
[45] https://www.viget.com/articles/maintenance-matters-good-tests/
|
||||
[46] https://www.viget.com/newsletter
|
||||
[47] http://eepurl.com/gtHqsj
|
||||
[48] https://www.viget.com/contact/
|
||||
[49] mailto:hello@viget.com?subject=Hello%2C%20Viget%21
|
||||
[50] tel:7038910670
|
||||
[51] https://www.viget.com/work/
|
||||
[52] https://www.viget.com/services/
|
||||
[53] https://www.viget.com/articles/
|
||||
[54] https://www.viget.com/about/
|
||||
[55] https://www.viget.com/careers/
|
||||
[56] https://www.viget.com/code-of-ethics/
|
||||
[57] https://www.viget.com/diversity-equity-and-inclusion/
|
||||
[58] https://pointlesscorp.com/
|
||||
[59] https://explorations.viget.com/
|
||||
[60] https://code.viget.com/
|
||||
[61] https://www.viget.com/newsletter/
|
||||
[62] https://www.viget.com/
|
||||
[63] http://x.com/viget
|
||||
[64] https://github.com/vigetlabs
|
||||
[65] https://dribbble.com/viget
|
||||
[66] https://www.instagram.com/viget/
|
||||
[67] https://www.linkedin.com/company/viget-labs
|
||||
[68] https://vimeo.com/viget/collections
|
||||
[69] https://www.viget.com/dc-metro-hq/
|
||||
[70] https://www.viget.com/durham/
|
||||
[71] https://www.viget.com/boulder/
|
||||
[72] https://www.viget.com/chattanooga/
|
||||
[73] https://www.viget.com/terms-conditions/
|
||||
[74] https://www.viget.com/privacy-policy/
|
||||
[75] https://individual.carefirst.com/individuals-families/mandates-policies/machine-readable-file.page
|
||||
[76] https://www.viget.com/
|
||||
[77] https://www.viget.com/articles
|
||||
[78] https://www.viget.com/articles/simple-commit-linting-for-issue-number-in-github-actions/#hero
|
||||
[79] http://eepurl.com/gtHqsj
|
||||
[81] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
[82] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
[83] https://x.com/intent/tweet?text=Including%20relevant%20ticket%20numbers%20in%20your%20git%20commit%20messages%20is%20a%20gift%20to%20your%20future%20self.%20Here%27s%20how%20to%20ensure%20you%20do%20it%20consistently.%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fsimple-commit-linting-for-issue-number-in-github-actions%2F
|
||||
|
||||
Reference in New Issue
Block a user