I'll provide a link to https://wiki.ubuntu.com/Releases
which includes the supported releases at the top, and EOL releases lower down on the page, these include (for the EOL releases)
Ubuntu 18.10 | Cosmic Cuttlefish | Release Notes | October 18, 2018 | July 18, 2019
Ubuntu 17.10 | Artful Aardvark | Release Notes | October 19, 2017 | July 19 2018
Releases use the codename for the ~six months prior to release, switching from that codename when they reach RC or Release Candidate stage which is in the last week prior to actual release. I'm currently using Lubuntu lunar, which will be released in April 2023 as Lubuntu 23.04 (lunar lobster).
eg. My box shows the following details
guiverc@d7050-next:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu Lunar Lobster (development branch)
Release: 23.04
Codename: lunar
The description of my release is what will change when RC is reached (a package with the change will appear just prior to the ISOs being generated which are the actual Release Candidate used in Quality Assurance testing)
My sources use that codename, eg.
guiverc@d7050-next:~$ grep lunar /etc/apt/sources.list |head -n 2
deb http://archive.ubuntu.com/ubuntu lunar main restricted
deb-src http://archive.ubuntu.com/ubuntu lunar multiverse restricted main universe #Added by software-properties
ie. it's just a name that means a lot during the development stage, but is also used later when you support the release in product (in sources etc) though most end-users tend to think of the actual release version (ie. the year.month name).