@simplysf/simply-gitlab 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/oclif.manifest.json +550 -550
  2. package/package.json +4 -4
@@ -1546,16 +1546,13 @@
1546
1546
  "view:file:gitlab"
1547
1547
  ]
1548
1548
  },
1549
- "gitlab:project:create": {
1549
+ "gitlab:mr:create": {
1550
1550
  "aliases": [],
1551
1551
  "args": {},
1552
- "description": "Creates the project in --namespace, or in the namespace of the token owner when none is given. Give it --name or --path; GitLab derives whichever one is missing.\n\n--template names one of the built-in templates GitLab ships, such as express or rails. To create from a custom template instead, add --custom-template for one the instance administrator registered, --template-group for one in a group, or use --template-project to name the template project itself by id or path — which GitLab prefers, because a name can be ambiguous. Add --template-group to --template-project when the template belongs to a group rather than the instance. Custom templates need a Premium or Ultimate instance.\n\nA template is applied asynchronously: this command returns as soon as the project record exists, with an import status of \"scheduled\", and the files arrive a few seconds later. Check \"project view\" until its import_status reads \"finished\" before writing to the repository. --dry-run prints the exact request body; a namespace or template given as a path is still looked up, so the printed ids are the ones that would be sent.",
1552
+ "description": "Both branches must already exist on the project. --draft prefixes the title with \"Draft: \", which is how GitLab itself marks a draft; there is no separate field for it.\n\nAssignees and reviewers are numeric user ids, not usernames — GitLab accepts only ids here. --body or --body-file supplies raw JSON for anything the flags do not cover, such as approval rules. Use --dry-run to see exactly what would be sent.",
1553
1553
  "examples": [
1554
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps",
1555
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template express --visibility internal",
1556
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template service-skeleton --template-group platform/templates",
1557
- "<%= config.bin %> <%= command.id %> --path new-service --template-project platform/templates/service-skeleton --dry-run",
1558
- "<%= config.bin %> <%= command.id %> --name new-service --template-project platform/templates/service-skeleton --template-group platform/templates"
1554
+ "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title \"feat: the thing\"",
1555
+ "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title wip --draft --squash"
1559
1556
  ],
1560
1557
  "flags": {
1561
1558
  "json": {
@@ -1593,96 +1590,92 @@
1593
1590
  "multiple": false,
1594
1591
  "type": "option"
1595
1592
  },
1593
+ "project": {
1594
+ "char": "p",
1595
+ "env": "GITLAB_PROJECT",
1596
+ "name": "project",
1597
+ "required": true,
1598
+ "summary": "Project id, or its full path such as group/subgroup/project.",
1599
+ "hasDynamicHelp": false,
1600
+ "multiple": false,
1601
+ "type": "option"
1602
+ },
1596
1603
  "dry-run": {
1597
1604
  "name": "dry-run",
1598
1605
  "summary": "Print the request that would be sent and exit without sending it.",
1599
1606
  "allowNo": false,
1600
1607
  "type": "boolean"
1601
1608
  },
1602
- "name": {
1603
- "name": "name",
1604
- "summary": "Project name. The path is derived from it when --path is not given.",
1609
+ "source-branch": {
1610
+ "name": "source-branch",
1611
+ "summary": "Branch holding the changes.",
1605
1612
  "hasDynamicHelp": false,
1606
1613
  "multiple": false,
1607
1614
  "type": "option"
1608
1615
  },
1609
- "path": {
1610
- "name": "path",
1611
- "summary": "Repository path, the URL slug. The name is derived from it when --name is not given.",
1616
+ "target-branch": {
1617
+ "name": "target-branch",
1618
+ "summary": "Branch the changes are proposed for.",
1612
1619
  "hasDynamicHelp": false,
1613
1620
  "multiple": false,
1614
1621
  "type": "option"
1615
1622
  },
1616
- "namespace": {
1617
- "description": "Defaults to the namespace of the token owner.",
1618
- "name": "namespace",
1619
- "summary": "Group or user namespace to create the project in, by id or full path.",
1623
+ "title": {
1624
+ "name": "title",
1625
+ "summary": "Merge request title.",
1620
1626
  "hasDynamicHelp": false,
1621
1627
  "multiple": false,
1622
1628
  "type": "option"
1623
1629
  },
1624
1630
  "description": {
1625
1631
  "name": "description",
1626
- "summary": "Project description.",
1632
+ "summary": "Merge request description, as Markdown.",
1627
1633
  "hasDynamicHelp": false,
1628
1634
  "multiple": false,
1629
1635
  "type": "option"
1630
1636
  },
1631
- "visibility": {
1632
- "name": "visibility",
1633
- "summary": "Who can see the project.",
1634
- "hasDynamicHelp": false,
1635
- "multiple": false,
1636
- "options": [
1637
- "private",
1638
- "internal",
1639
- "public"
1640
- ],
1641
- "type": "option"
1637
+ "draft": {
1638
+ "name": "draft",
1639
+ "summary": "Open it as a draft.",
1640
+ "allowNo": false,
1641
+ "type": "boolean"
1642
1642
  },
1643
- "default-branch": {
1644
- "name": "default-branch",
1645
- "summary": "Name of the default branch.",
1646
- "hasDynamicHelp": false,
1647
- "multiple": false,
1648
- "type": "option"
1643
+ "squash": {
1644
+ "name": "squash",
1645
+ "summary": "Squash the commits when it merges.",
1646
+ "allowNo": false,
1647
+ "type": "boolean"
1649
1648
  },
1650
- "initialize-with-readme": {
1651
- "name": "initialize-with-readme",
1652
- "summary": "Create a first commit holding a README, so the repository is not empty.",
1649
+ "remove-source-branch": {
1650
+ "name": "remove-source-branch",
1651
+ "summary": "Delete the source branch on merge.",
1653
1652
  "allowNo": false,
1654
1653
  "type": "boolean"
1655
1654
  },
1656
- "topics": {
1657
- "name": "topics",
1658
- "summary": "Comma-separated topics to label the project with.",
1655
+ "assignee-id": {
1656
+ "name": "assignee-id",
1657
+ "summary": "User id to assign. Repeatable.",
1659
1658
  "hasDynamicHelp": false,
1660
- "multiple": false,
1659
+ "multiple": true,
1661
1660
  "type": "option"
1662
1661
  },
1663
- "template": {
1664
- "name": "template",
1665
- "summary": "Template to create from: a built-in name, or with --custom-template or --template-group a custom one.",
1662
+ "reviewer-id": {
1663
+ "name": "reviewer-id",
1664
+ "summary": "User id to request review from. Repeatable.",
1666
1665
  "hasDynamicHelp": false,
1667
- "multiple": false,
1666
+ "multiple": true,
1668
1667
  "type": "option"
1669
1668
  },
1670
- "custom-template": {
1671
- "name": "custom-template",
1672
- "summary": "Look --template up among the instance's custom project templates rather than the built-in ones.",
1673
- "allowNo": false,
1674
- "type": "boolean"
1675
- },
1676
- "template-group": {
1677
- "name": "template-group",
1678
- "summary": "Group whose custom project templates --template or --template-project names, by id or full path.",
1669
+ "labels": {
1670
+ "name": "labels",
1671
+ "summary": "Comma-separated labels to apply.",
1679
1672
  "hasDynamicHelp": false,
1680
1673
  "multiple": false,
1681
1674
  "type": "option"
1682
1675
  },
1683
- "template-project": {
1684
- "name": "template-project",
1685
- "summary": "Custom template project to create from, by id or full path. Cannot be combined with --template.",
1676
+ "milestone-id": {
1677
+ "name": "milestone-id",
1678
+ "summary": "Milestone id to attach.",
1686
1679
  "hasDynamicHelp": false,
1687
1680
  "multiple": false,
1688
1681
  "type": "option"
@@ -1707,12 +1700,12 @@
1707
1700
  },
1708
1701
  "hasDynamicHelp": false,
1709
1702
  "hiddenAliases": [],
1710
- "id": "gitlab:project:create",
1703
+ "id": "gitlab:mr:create",
1711
1704
  "pluginAlias": "@simplysf/simply-gitlab",
1712
1705
  "pluginName": "@simplysf/simply-gitlab",
1713
1706
  "pluginType": "core",
1714
1707
  "strict": true,
1715
- "summary": "Create a project, blank or from a template.",
1708
+ "summary": "Open a merge request.",
1716
1709
  "enableJsonFlag": true,
1717
1710
  "isWrite": true,
1718
1711
  "isESM": true,
@@ -1720,27 +1713,27 @@
1720
1713
  "lib",
1721
1714
  "commands",
1722
1715
  "gitlab",
1723
- "project",
1716
+ "mr",
1724
1717
  "create.js"
1725
1718
  ],
1726
1719
  "aliasPermutations": [],
1727
1720
  "permutations": [
1728
- "gitlab:project:create",
1729
- "project:gitlab:create",
1730
- "project:create:gitlab",
1731
- "gitlab:create:project",
1732
- "create:gitlab:project",
1733
- "create:project:gitlab"
1721
+ "gitlab:mr:create",
1722
+ "mr:gitlab:create",
1723
+ "mr:create:gitlab",
1724
+ "gitlab:create:mr",
1725
+ "create:gitlab:mr",
1726
+ "create:mr:gitlab"
1734
1727
  ]
1735
1728
  },
1736
- "gitlab:project:list": {
1729
+ "gitlab:mr:list": {
1737
1730
  "aliases": [],
1738
1731
  "args": {},
1739
- "description": "Without --search this lists every project the token can reach, newest activity first, which on a large instance is not a useful answer — narrow it with --search or --membership. Use --simple for a much smaller payload when you only need ids and paths.",
1732
+ "description": "Defaults to open merge requests, which is what a list is nearly always for; pass --state all to include closed and merged ones. The IID column is the number to pass to the other mr commands — it is per-project, and is not the \"id\" field in the JSON payload.",
1740
1733
  "examples": [
1741
- "<%= config.bin %> <%= command.id %> --membership",
1742
- "<%= config.bin %> <%= command.id %> --search platform --limit 10",
1743
- "<%= config.bin %> <%= command.id %> --search platform --simple --json"
1734
+ "<%= config.bin %> <%= command.id %> --project group/project",
1735
+ "<%= config.bin %> <%= command.id %> --project group/project --state merged --target-branch main --limit 10",
1736
+ "<%= config.bin %> <%= command.id %> --project group/project --author-username someone --json"
1744
1737
  ],
1745
1738
  "flags": {
1746
1739
  "json": {
@@ -1778,48 +1771,90 @@
1778
1771
  "multiple": false,
1779
1772
  "type": "option"
1780
1773
  },
1774
+ "project": {
1775
+ "char": "p",
1776
+ "env": "GITLAB_PROJECT",
1777
+ "name": "project",
1778
+ "required": true,
1779
+ "summary": "Project id, or its full path such as group/subgroup/project.",
1780
+ "hasDynamicHelp": false,
1781
+ "multiple": false,
1782
+ "type": "option"
1783
+ },
1781
1784
  "limit": {
1782
1785
  "name": "limit",
1783
- "summary": "Maximum number of projects to return across all pages.",
1786
+ "summary": "Maximum number of merge requests to return across all pages.",
1784
1787
  "default": 20,
1785
1788
  "hasDynamicHelp": false,
1786
1789
  "multiple": false,
1787
1790
  "type": "option"
1788
1791
  },
1789
- "search": {
1790
- "name": "search",
1791
- "summary": "Match against the project name and path.",
1792
+ "state": {
1793
+ "name": "state",
1794
+ "summary": "Merge request state to return.",
1795
+ "default": "opened",
1792
1796
  "hasDynamicHelp": false,
1793
1797
  "multiple": false,
1798
+ "options": [
1799
+ "opened",
1800
+ "closed",
1801
+ "locked",
1802
+ "merged",
1803
+ "all"
1804
+ ],
1794
1805
  "type": "option"
1795
1806
  },
1796
- "membership": {
1797
- "name": "membership",
1798
- "summary": "Only projects you are a member of.",
1799
- "allowNo": false,
1800
- "type": "boolean"
1807
+ "source-branch": {
1808
+ "name": "source-branch",
1809
+ "summary": "Only merge requests from this source branch.",
1810
+ "hasDynamicHelp": false,
1811
+ "multiple": false,
1812
+ "type": "option"
1801
1813
  },
1802
- "owned": {
1803
- "name": "owned",
1804
- "summary": "Only projects you own.",
1805
- "allowNo": false,
1806
- "type": "boolean"
1814
+ "target-branch": {
1815
+ "name": "target-branch",
1816
+ "summary": "Only merge requests into this target branch.",
1817
+ "hasDynamicHelp": false,
1818
+ "multiple": false,
1819
+ "type": "option"
1807
1820
  },
1808
- "simple": {
1809
- "name": "simple",
1810
- "summary": "Return only the core fields, for a much smaller payload.",
1811
- "allowNo": false,
1812
- "type": "boolean"
1821
+ "author-username": {
1822
+ "name": "author-username",
1823
+ "summary": "Only merge requests opened by this username.",
1824
+ "hasDynamicHelp": false,
1825
+ "multiple": false,
1826
+ "type": "option"
1827
+ },
1828
+ "reviewer-username": {
1829
+ "name": "reviewer-username",
1830
+ "summary": "Only merge requests this username is reviewing.",
1831
+ "hasDynamicHelp": false,
1832
+ "multiple": false,
1833
+ "type": "option"
1834
+ },
1835
+ "labels": {
1836
+ "name": "labels",
1837
+ "summary": "Comma-separated labels every result must carry.",
1838
+ "hasDynamicHelp": false,
1839
+ "multiple": false,
1840
+ "type": "option"
1841
+ },
1842
+ "search": {
1843
+ "name": "search",
1844
+ "summary": "Match against the title and description.",
1845
+ "hasDynamicHelp": false,
1846
+ "multiple": false,
1847
+ "type": "option"
1813
1848
  }
1814
1849
  },
1815
1850
  "hasDynamicHelp": false,
1816
1851
  "hiddenAliases": [],
1817
- "id": "gitlab:project:list",
1852
+ "id": "gitlab:mr:list",
1818
1853
  "pluginAlias": "@simplysf/simply-gitlab",
1819
1854
  "pluginName": "@simplysf/simply-gitlab",
1820
1855
  "pluginType": "core",
1821
1856
  "strict": true,
1822
- "summary": "List projects you can see.",
1857
+ "summary": "List merge requests for a project.",
1823
1858
  "enableJsonFlag": true,
1824
1859
  "isWrite": false,
1825
1860
  "isESM": true,
@@ -1827,26 +1862,27 @@
1827
1862
  "lib",
1828
1863
  "commands",
1829
1864
  "gitlab",
1830
- "project",
1865
+ "mr",
1831
1866
  "list.js"
1832
1867
  ],
1833
1868
  "aliasPermutations": [],
1834
1869
  "permutations": [
1835
- "gitlab:project:list",
1836
- "project:gitlab:list",
1837
- "project:list:gitlab",
1838
- "gitlab:list:project",
1839
- "list:gitlab:project",
1840
- "list:project:gitlab"
1870
+ "gitlab:mr:list",
1871
+ "mr:gitlab:list",
1872
+ "mr:list:gitlab",
1873
+ "gitlab:list:mr",
1874
+ "list:gitlab:mr",
1875
+ "list:mr:gitlab"
1841
1876
  ]
1842
1877
  },
1843
- "gitlab:project:view": {
1878
+ "gitlab:mr:update": {
1844
1879
  "aliases": [],
1845
1880
  "args": {},
1846
- "description": "Accepts either the numeric id or the full path. Use --json for the complete, unmodified API payload, which carries far more than the summary below — permissions, statistics, and every feature toggle on the project.",
1881
+ "description": "Only the attributes you name are changed, with one exception worth knowing: --labels replaces the whole label set rather than adding to it.\n\nNaming nothing to change is refused rather than sent, because GitLab answers an empty update with a cheerful 200 and an unchanged merge request. --state close and --state reopen do what the buttons of those names do; neither merges anything.",
1847
1882
  "examples": [
1848
- "<%= config.bin %> <%= command.id %> --project group/project",
1849
- "<%= config.bin %> <%= command.id %> --project 1234 --json"
1883
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --title \"feat: renamed\"",
1884
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --state close",
1885
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --labels backend,urgent --dry-run"
1850
1886
  ],
1851
1887
  "flags": {
1852
1888
  "json": {
@@ -1893,250 +1929,82 @@
1893
1929
  "hasDynamicHelp": false,
1894
1930
  "multiple": false,
1895
1931
  "type": "option"
1896
- }
1897
- },
1898
- "hasDynamicHelp": false,
1899
- "hiddenAliases": [],
1900
- "id": "gitlab:project:view",
1901
- "pluginAlias": "@simplysf/simply-gitlab",
1902
- "pluginName": "@simplysf/simply-gitlab",
1903
- "pluginType": "core",
1904
- "strict": true,
1905
- "summary": "Show one project.",
1906
- "enableJsonFlag": true,
1907
- "isWrite": false,
1908
- "isESM": true,
1909
- "relativePath": [
1910
- "lib",
1911
- "commands",
1912
- "gitlab",
1913
- "project",
1914
- "view.js"
1915
- ],
1916
- "aliasPermutations": [],
1917
- "permutations": [
1918
- "gitlab:project:view",
1919
- "project:gitlab:view",
1920
- "project:view:gitlab",
1921
- "gitlab:view:project",
1922
- "view:gitlab:project",
1923
- "view:project:gitlab"
1924
- ]
1925
- },
1926
- "gitlab:release:list": {
1927
- "aliases": [],
1928
- "args": {},
1929
- "description": "Releases are tags with notes and assets attached, so a project can have many tags and no releases at all. Use --json for the release notes, asset links, and the commit each release points at.",
1930
- "examples": [
1931
- "<%= config.bin %> <%= command.id %> --project group/project",
1932
- "<%= config.bin %> <%= command.id %> --project group/project --limit 5 --json"
1933
- ],
1934
- "flags": {
1935
- "json": {
1936
- "description": "Format output as json.",
1937
- "helpGroup": "GLOBAL",
1938
- "name": "json",
1939
- "allowNo": false,
1940
- "type": "boolean"
1941
1932
  },
1942
- "env-file": {
1943
- "char": "e",
1944
- "description": "Loaded before anything else. Variables already present in the environment win, so the file never overrides an explicit export, and only GitLab connection variables are read from it. A path that cannot be read is an error.",
1945
- "helpGroup": "CONNECTION",
1946
- "name": "env-file",
1947
- "summary": "Path to a .env file holding connection settings.",
1948
- "hasDynamicHelp": false,
1949
- "multiple": false,
1950
- "type": "option"
1951
- },
1952
- "gitlab-url": {
1953
- "env": "GITLAB_URL",
1954
- "helpGroup": "CONNECTION",
1955
- "name": "gitlab-url",
1956
- "summary": "Base URL of the GitLab instance. Defaults to https://gitlab.com.",
1957
- "hasDynamicHelp": false,
1958
- "multiple": false,
1959
- "type": "option"
1960
- },
1961
- "gitlab-token": {
1962
- "env": "GITLAB_TOKEN",
1963
- "helpGroup": "CONNECTION",
1964
- "name": "gitlab-token",
1965
- "summary": "Personal, project, or group access token.",
1966
- "hasDynamicHelp": false,
1967
- "multiple": false,
1968
- "type": "option"
1969
- },
1970
- "project": {
1971
- "char": "p",
1972
- "env": "GITLAB_PROJECT",
1973
- "name": "project",
1974
- "required": true,
1975
- "summary": "Project id, or its full path such as group/subgroup/project.",
1976
- "hasDynamicHelp": false,
1977
- "multiple": false,
1978
- "type": "option"
1979
- },
1980
- "limit": {
1981
- "name": "limit",
1982
- "summary": "Maximum number of releases to return across all pages.",
1983
- "default": 20,
1984
- "hasDynamicHelp": false,
1985
- "multiple": false,
1986
- "type": "option"
1987
- }
1988
- },
1989
- "hasDynamicHelp": false,
1990
- "hiddenAliases": [],
1991
- "id": "gitlab:release:list",
1992
- "pluginAlias": "@simplysf/simply-gitlab",
1993
- "pluginName": "@simplysf/simply-gitlab",
1994
- "pluginType": "core",
1995
- "strict": true,
1996
- "summary": "List releases for a project.",
1997
- "enableJsonFlag": true,
1998
- "isWrite": false,
1999
- "isESM": true,
2000
- "relativePath": [
2001
- "lib",
2002
- "commands",
2003
- "gitlab",
2004
- "release",
2005
- "list.js"
2006
- ],
2007
- "aliasPermutations": [],
2008
- "permutations": [
2009
- "gitlab:release:list",
2010
- "release:gitlab:list",
2011
- "release:list:gitlab",
2012
- "gitlab:list:release",
2013
- "list:gitlab:release",
2014
- "list:release:gitlab"
2015
- ]
2016
- },
2017
- "gitlab:mr:create": {
2018
- "aliases": [],
2019
- "args": {},
2020
- "description": "Both branches must already exist on the project. --draft prefixes the title with \"Draft: \", which is how GitLab itself marks a draft; there is no separate field for it.\n\nAssignees and reviewers are numeric user ids, not usernames — GitLab accepts only ids here. --body or --body-file supplies raw JSON for anything the flags do not cover, such as approval rules. Use --dry-run to see exactly what would be sent.",
2021
- "examples": [
2022
- "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title \"feat: the thing\"",
2023
- "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title wip --draft --squash"
2024
- ],
2025
- "flags": {
2026
- "json": {
2027
- "description": "Format output as json.",
2028
- "helpGroup": "GLOBAL",
2029
- "name": "json",
1933
+ "dry-run": {
1934
+ "name": "dry-run",
1935
+ "summary": "Print the request that would be sent and exit without sending it.",
2030
1936
  "allowNo": false,
2031
1937
  "type": "boolean"
2032
1938
  },
2033
- "env-file": {
2034
- "char": "e",
2035
- "description": "Loaded before anything else. Variables already present in the environment win, so the file never overrides an explicit export, and only GitLab connection variables are read from it. A path that cannot be read is an error.",
2036
- "helpGroup": "CONNECTION",
2037
- "name": "env-file",
2038
- "summary": "Path to a .env file holding connection settings.",
2039
- "hasDynamicHelp": false,
2040
- "multiple": false,
2041
- "type": "option"
2042
- },
2043
- "gitlab-url": {
2044
- "env": "GITLAB_URL",
2045
- "helpGroup": "CONNECTION",
2046
- "name": "gitlab-url",
2047
- "summary": "Base URL of the GitLab instance. Defaults to https://gitlab.com.",
2048
- "hasDynamicHelp": false,
2049
- "multiple": false,
2050
- "type": "option"
2051
- },
2052
- "gitlab-token": {
2053
- "env": "GITLAB_TOKEN",
2054
- "helpGroup": "CONNECTION",
2055
- "name": "gitlab-token",
2056
- "summary": "Personal, project, or group access token.",
1939
+ "mr": {
1940
+ "name": "mr",
1941
+ "required": true,
1942
+ "summary": "Merge request iid.",
2057
1943
  "hasDynamicHelp": false,
2058
1944
  "multiple": false,
2059
1945
  "type": "option"
2060
1946
  },
2061
- "project": {
2062
- "char": "p",
2063
- "env": "GITLAB_PROJECT",
2064
- "name": "project",
2065
- "required": true,
2066
- "summary": "Project id, or its full path such as group/subgroup/project.",
1947
+ "title": {
1948
+ "name": "title",
1949
+ "summary": "New title.",
2067
1950
  "hasDynamicHelp": false,
2068
1951
  "multiple": false,
2069
1952
  "type": "option"
2070
1953
  },
2071
- "dry-run": {
2072
- "name": "dry-run",
2073
- "summary": "Print the request that would be sent and exit without sending it.",
2074
- "allowNo": false,
2075
- "type": "boolean"
2076
- },
2077
- "source-branch": {
2078
- "name": "source-branch",
2079
- "summary": "Branch holding the changes.",
1954
+ "description": {
1955
+ "name": "description",
1956
+ "summary": "New description, as Markdown.",
2080
1957
  "hasDynamicHelp": false,
2081
1958
  "multiple": false,
2082
1959
  "type": "option"
2083
1960
  },
2084
1961
  "target-branch": {
2085
1962
  "name": "target-branch",
2086
- "summary": "Branch the changes are proposed for.",
2087
- "hasDynamicHelp": false,
2088
- "multiple": false,
2089
- "type": "option"
2090
- },
2091
- "title": {
2092
- "name": "title",
2093
- "summary": "Merge request title.",
1963
+ "summary": "New target branch.",
2094
1964
  "hasDynamicHelp": false,
2095
1965
  "multiple": false,
2096
1966
  "type": "option"
2097
1967
  },
2098
- "description": {
2099
- "name": "description",
2100
- "summary": "Merge request description, as Markdown.",
1968
+ "state": {
1969
+ "name": "state",
1970
+ "summary": "Close or reopen the merge request.",
2101
1971
  "hasDynamicHelp": false,
2102
1972
  "multiple": false,
1973
+ "options": [
1974
+ "close",
1975
+ "reopen"
1976
+ ],
2103
1977
  "type": "option"
2104
1978
  },
2105
- "draft": {
2106
- "name": "draft",
2107
- "summary": "Open it as a draft.",
2108
- "allowNo": false,
2109
- "type": "boolean"
2110
- },
2111
1979
  "squash": {
2112
1980
  "name": "squash",
2113
1981
  "summary": "Squash the commits when it merges.",
2114
- "allowNo": false,
1982
+ "allowNo": true,
2115
1983
  "type": "boolean"
2116
1984
  },
2117
1985
  "remove-source-branch": {
2118
1986
  "name": "remove-source-branch",
2119
1987
  "summary": "Delete the source branch on merge.",
2120
- "allowNo": false,
1988
+ "allowNo": true,
2121
1989
  "type": "boolean"
2122
1990
  },
2123
1991
  "assignee-id": {
2124
1992
  "name": "assignee-id",
2125
- "summary": "User id to assign. Repeatable.",
1993
+ "summary": "User id to assign, replacing the set. Repeatable.",
2126
1994
  "hasDynamicHelp": false,
2127
1995
  "multiple": true,
2128
1996
  "type": "option"
2129
1997
  },
2130
1998
  "reviewer-id": {
2131
1999
  "name": "reviewer-id",
2132
- "summary": "User id to request review from. Repeatable.",
2000
+ "summary": "User id to review, replacing the set. Repeatable.",
2133
2001
  "hasDynamicHelp": false,
2134
2002
  "multiple": true,
2135
2003
  "type": "option"
2136
2004
  },
2137
2005
  "labels": {
2138
2006
  "name": "labels",
2139
- "summary": "Comma-separated labels to apply.",
2007
+ "summary": "Comma-separated labels, replacing the existing set.",
2140
2008
  "hasDynamicHelp": false,
2141
2009
  "multiple": false,
2142
2010
  "type": "option"
@@ -2168,12 +2036,12 @@
2168
2036
  },
2169
2037
  "hasDynamicHelp": false,
2170
2038
  "hiddenAliases": [],
2171
- "id": "gitlab:mr:create",
2039
+ "id": "gitlab:mr:update",
2172
2040
  "pluginAlias": "@simplysf/simply-gitlab",
2173
2041
  "pluginName": "@simplysf/simply-gitlab",
2174
2042
  "pluginType": "core",
2175
2043
  "strict": true,
2176
- "summary": "Open a merge request.",
2044
+ "summary": "Change an existing merge request.",
2177
2045
  "enableJsonFlag": true,
2178
2046
  "isWrite": true,
2179
2047
  "isESM": true,
@@ -2182,26 +2050,25 @@
2182
2050
  "commands",
2183
2051
  "gitlab",
2184
2052
  "mr",
2185
- "create.js"
2053
+ "update.js"
2186
2054
  ],
2187
2055
  "aliasPermutations": [],
2188
2056
  "permutations": [
2189
- "gitlab:mr:create",
2190
- "mr:gitlab:create",
2191
- "mr:create:gitlab",
2192
- "gitlab:create:mr",
2193
- "create:gitlab:mr",
2194
- "create:mr:gitlab"
2057
+ "gitlab:mr:update",
2058
+ "mr:gitlab:update",
2059
+ "mr:update:gitlab",
2060
+ "gitlab:update:mr",
2061
+ "update:gitlab:mr",
2062
+ "update:mr:gitlab"
2195
2063
  ]
2196
2064
  },
2197
- "gitlab:mr:list": {
2065
+ "gitlab:mr:view": {
2198
2066
  "aliases": [],
2199
2067
  "args": {},
2200
- "description": "Defaults to open merge requests, which is what a list is nearly always for; pass --state all to include closed and merged ones. The IID column is the number to pass to the other mr commands — it is per-project, and is not the \"id\" field in the JSON payload.",
2068
+ "description": "Takes the project-scoped iid — the number in the merge request URL — not the instance-wide id. Use --json for the full payload, which carries the pipeline status, approvals, and diff refs the summary below leaves out.",
2201
2069
  "examples": [
2202
- "<%= config.bin %> <%= command.id %> --project group/project",
2203
- "<%= config.bin %> <%= command.id %> --project group/project --state merged --target-branch main --limit 10",
2204
- "<%= config.bin %> <%= command.id %> --project group/project --author-username someone --json"
2070
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42",
2071
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --json"
2205
2072
  ],
2206
2073
  "flags": {
2207
2074
  "json": {
@@ -2249,67 +2116,10 @@
2249
2116
  "multiple": false,
2250
2117
  "type": "option"
2251
2118
  },
2252
- "limit": {
2253
- "name": "limit",
2254
- "summary": "Maximum number of merge requests to return across all pages.",
2255
- "default": 20,
2256
- "hasDynamicHelp": false,
2257
- "multiple": false,
2258
- "type": "option"
2259
- },
2260
- "state": {
2261
- "name": "state",
2262
- "summary": "Merge request state to return.",
2263
- "default": "opened",
2264
- "hasDynamicHelp": false,
2265
- "multiple": false,
2266
- "options": [
2267
- "opened",
2268
- "closed",
2269
- "locked",
2270
- "merged",
2271
- "all"
2272
- ],
2273
- "type": "option"
2274
- },
2275
- "source-branch": {
2276
- "name": "source-branch",
2277
- "summary": "Only merge requests from this source branch.",
2278
- "hasDynamicHelp": false,
2279
- "multiple": false,
2280
- "type": "option"
2281
- },
2282
- "target-branch": {
2283
- "name": "target-branch",
2284
- "summary": "Only merge requests into this target branch.",
2285
- "hasDynamicHelp": false,
2286
- "multiple": false,
2287
- "type": "option"
2288
- },
2289
- "author-username": {
2290
- "name": "author-username",
2291
- "summary": "Only merge requests opened by this username.",
2292
- "hasDynamicHelp": false,
2293
- "multiple": false,
2294
- "type": "option"
2295
- },
2296
- "reviewer-username": {
2297
- "name": "reviewer-username",
2298
- "summary": "Only merge requests this username is reviewing.",
2299
- "hasDynamicHelp": false,
2300
- "multiple": false,
2301
- "type": "option"
2302
- },
2303
- "labels": {
2304
- "name": "labels",
2305
- "summary": "Comma-separated labels every result must carry.",
2306
- "hasDynamicHelp": false,
2307
- "multiple": false,
2308
- "type": "option"
2309
- },
2310
- "search": {
2311
- "name": "search",
2312
- "summary": "Match against the title and description.",
2119
+ "mr": {
2120
+ "name": "mr",
2121
+ "required": true,
2122
+ "summary": "Merge request iid.",
2313
2123
  "hasDynamicHelp": false,
2314
2124
  "multiple": false,
2315
2125
  "type": "option"
@@ -2317,12 +2127,12 @@
2317
2127
  },
2318
2128
  "hasDynamicHelp": false,
2319
2129
  "hiddenAliases": [],
2320
- "id": "gitlab:mr:list",
2130
+ "id": "gitlab:mr:view",
2321
2131
  "pluginAlias": "@simplysf/simply-gitlab",
2322
2132
  "pluginName": "@simplysf/simply-gitlab",
2323
2133
  "pluginType": "core",
2324
2134
  "strict": true,
2325
- "summary": "List merge requests for a project.",
2135
+ "summary": "Show one merge request.",
2326
2136
  "enableJsonFlag": true,
2327
2137
  "isWrite": false,
2328
2138
  "isESM": true,
@@ -2331,26 +2141,28 @@
2331
2141
  "commands",
2332
2142
  "gitlab",
2333
2143
  "mr",
2334
- "list.js"
2144
+ "view.js"
2335
2145
  ],
2336
2146
  "aliasPermutations": [],
2337
2147
  "permutations": [
2338
- "gitlab:mr:list",
2339
- "mr:gitlab:list",
2340
- "mr:list:gitlab",
2341
- "gitlab:list:mr",
2342
- "list:gitlab:mr",
2343
- "list:mr:gitlab"
2148
+ "gitlab:mr:view",
2149
+ "mr:gitlab:view",
2150
+ "mr:view:gitlab",
2151
+ "gitlab:view:mr",
2152
+ "view:gitlab:mr",
2153
+ "view:mr:gitlab"
2344
2154
  ]
2345
2155
  },
2346
- "gitlab:mr:update": {
2156
+ "gitlab:project:create": {
2347
2157
  "aliases": [],
2348
2158
  "args": {},
2349
- "description": "Only the attributes you name are changed, with one exception worth knowing: --labels replaces the whole label set rather than adding to it.\n\nNaming nothing to change is refused rather than sent, because GitLab answers an empty update with a cheerful 200 and an unchanged merge request. --state close and --state reopen do what the buttons of those names do; neither merges anything.",
2159
+ "description": "Creates the project in --namespace, or in the namespace of the token owner when none is given. Give it --name or --path; GitLab derives whichever one is missing.\n\n--template names one of the built-in templates GitLab ships, such as express or rails. To create from a custom template instead, add --custom-template for one the instance administrator registered, --template-group for one in a group, or use --template-project to name the template project itself by id or path — which GitLab prefers, because a name can be ambiguous. Add --template-group to --template-project when the template belongs to a group rather than the instance. Custom templates need a Premium or Ultimate instance.\n\nA template is applied asynchronously: this command returns as soon as the project record exists, with an import status of \"scheduled\", and the files arrive a few seconds later. Check \"project view\" until its import_status reads \"finished\" before writing to the repository. --dry-run prints the exact request body; a namespace or template given as a path is still looked up, so the printed ids are the ones that would be sent.",
2350
2160
  "examples": [
2351
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --title \"feat: renamed\"",
2352
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --state close",
2353
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --labels backend,urgent --dry-run"
2161
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps",
2162
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template express --visibility internal",
2163
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template service-skeleton --template-group platform/templates",
2164
+ "<%= config.bin %> <%= command.id %> --path new-service --template-project platform/templates/service-skeleton --dry-run",
2165
+ "<%= config.bin %> <%= command.id %> --name new-service --template-project platform/templates/service-skeleton --template-group platform/templates"
2354
2166
  ],
2355
2167
  "flags": {
2356
2168
  "json": {
@@ -2388,98 +2200,96 @@
2388
2200
  "multiple": false,
2389
2201
  "type": "option"
2390
2202
  },
2391
- "project": {
2392
- "char": "p",
2393
- "env": "GITLAB_PROJECT",
2394
- "name": "project",
2395
- "required": true,
2396
- "summary": "Project id, or its full path such as group/subgroup/project.",
2397
- "hasDynamicHelp": false,
2398
- "multiple": false,
2399
- "type": "option"
2400
- },
2401
2203
  "dry-run": {
2402
2204
  "name": "dry-run",
2403
2205
  "summary": "Print the request that would be sent and exit without sending it.",
2404
2206
  "allowNo": false,
2405
2207
  "type": "boolean"
2406
2208
  },
2407
- "mr": {
2408
- "name": "mr",
2409
- "required": true,
2410
- "summary": "Merge request iid.",
2209
+ "name": {
2210
+ "name": "name",
2211
+ "summary": "Project name. The path is derived from it when --path is not given.",
2411
2212
  "hasDynamicHelp": false,
2412
2213
  "multiple": false,
2413
2214
  "type": "option"
2414
2215
  },
2415
- "title": {
2416
- "name": "title",
2417
- "summary": "New title.",
2216
+ "path": {
2217
+ "name": "path",
2218
+ "summary": "Repository path, the URL slug. The name is derived from it when --name is not given.",
2418
2219
  "hasDynamicHelp": false,
2419
2220
  "multiple": false,
2420
2221
  "type": "option"
2421
2222
  },
2422
- "description": {
2423
- "name": "description",
2424
- "summary": "New description, as Markdown.",
2223
+ "namespace": {
2224
+ "description": "Defaults to the namespace of the token owner.",
2225
+ "name": "namespace",
2226
+ "summary": "Group or user namespace to create the project in, by id or full path.",
2425
2227
  "hasDynamicHelp": false,
2426
2228
  "multiple": false,
2427
2229
  "type": "option"
2428
2230
  },
2429
- "target-branch": {
2430
- "name": "target-branch",
2431
- "summary": "New target branch.",
2231
+ "description": {
2232
+ "name": "description",
2233
+ "summary": "Project description.",
2432
2234
  "hasDynamicHelp": false,
2433
2235
  "multiple": false,
2434
2236
  "type": "option"
2435
2237
  },
2436
- "state": {
2437
- "name": "state",
2438
- "summary": "Close or reopen the merge request.",
2238
+ "visibility": {
2239
+ "name": "visibility",
2240
+ "summary": "Who can see the project.",
2439
2241
  "hasDynamicHelp": false,
2440
2242
  "multiple": false,
2441
2243
  "options": [
2442
- "close",
2443
- "reopen"
2244
+ "private",
2245
+ "internal",
2246
+ "public"
2444
2247
  ],
2445
2248
  "type": "option"
2446
2249
  },
2447
- "squash": {
2448
- "name": "squash",
2449
- "summary": "Squash the commits when it merges.",
2450
- "allowNo": true,
2451
- "type": "boolean"
2250
+ "default-branch": {
2251
+ "name": "default-branch",
2252
+ "summary": "Name of the default branch.",
2253
+ "hasDynamicHelp": false,
2254
+ "multiple": false,
2255
+ "type": "option"
2452
2256
  },
2453
- "remove-source-branch": {
2454
- "name": "remove-source-branch",
2455
- "summary": "Delete the source branch on merge.",
2456
- "allowNo": true,
2257
+ "initialize-with-readme": {
2258
+ "name": "initialize-with-readme",
2259
+ "summary": "Create a first commit holding a README, so the repository is not empty.",
2260
+ "allowNo": false,
2457
2261
  "type": "boolean"
2458
2262
  },
2459
- "assignee-id": {
2460
- "name": "assignee-id",
2461
- "summary": "User id to assign, replacing the set. Repeatable.",
2263
+ "topics": {
2264
+ "name": "topics",
2265
+ "summary": "Comma-separated topics to label the project with.",
2462
2266
  "hasDynamicHelp": false,
2463
- "multiple": true,
2267
+ "multiple": false,
2464
2268
  "type": "option"
2465
2269
  },
2466
- "reviewer-id": {
2467
- "name": "reviewer-id",
2468
- "summary": "User id to review, replacing the set. Repeatable.",
2270
+ "template": {
2271
+ "name": "template",
2272
+ "summary": "Template to create from: a built-in name, or with --custom-template or --template-group a custom one.",
2469
2273
  "hasDynamicHelp": false,
2470
- "multiple": true,
2274
+ "multiple": false,
2471
2275
  "type": "option"
2472
2276
  },
2473
- "labels": {
2474
- "name": "labels",
2475
- "summary": "Comma-separated labels, replacing the existing set.",
2277
+ "custom-template": {
2278
+ "name": "custom-template",
2279
+ "summary": "Look --template up among the instance's custom project templates rather than the built-in ones.",
2280
+ "allowNo": false,
2281
+ "type": "boolean"
2282
+ },
2283
+ "template-group": {
2284
+ "name": "template-group",
2285
+ "summary": "Group whose custom project templates --template or --template-project names, by id or full path.",
2476
2286
  "hasDynamicHelp": false,
2477
2287
  "multiple": false,
2478
2288
  "type": "option"
2479
2289
  },
2480
- "milestone-id": {
2481
- "name": "milestone-id",
2482
- "summary": "Milestone id to attach.",
2290
+ "template-project": {
2291
+ "name": "template-project",
2292
+ "summary": "Custom template project to create from, by id or full path. Cannot be combined with --template.",
2483
2293
  "hasDynamicHelp": false,
2484
2294
  "multiple": false,
2485
2295
  "type": "option"
@@ -2504,12 +2314,12 @@
2504
2314
  },
2505
2315
  "hasDynamicHelp": false,
2506
2316
  "hiddenAliases": [],
2507
- "id": "gitlab:mr:update",
2317
+ "id": "gitlab:project:create",
2508
2318
  "pluginAlias": "@simplysf/simply-gitlab",
2509
2319
  "pluginName": "@simplysf/simply-gitlab",
2510
2320
  "pluginType": "core",
2511
2321
  "strict": true,
2512
- "summary": "Change an existing merge request.",
2322
+ "summary": "Create a project, blank or from a template.",
2513
2323
  "enableJsonFlag": true,
2514
2324
  "isWrite": true,
2515
2325
  "isESM": true,
@@ -2517,26 +2327,27 @@
2517
2327
  "lib",
2518
2328
  "commands",
2519
2329
  "gitlab",
2520
- "mr",
2521
- "update.js"
2330
+ "project",
2331
+ "create.js"
2522
2332
  ],
2523
2333
  "aliasPermutations": [],
2524
2334
  "permutations": [
2525
- "gitlab:mr:update",
2526
- "mr:gitlab:update",
2527
- "mr:update:gitlab",
2528
- "gitlab:update:mr",
2529
- "update:gitlab:mr",
2530
- "update:mr:gitlab"
2335
+ "gitlab:project:create",
2336
+ "project:gitlab:create",
2337
+ "project:create:gitlab",
2338
+ "gitlab:create:project",
2339
+ "create:gitlab:project",
2340
+ "create:project:gitlab"
2531
2341
  ]
2532
2342
  },
2533
- "gitlab:mr:view": {
2343
+ "gitlab:project:list": {
2534
2344
  "aliases": [],
2535
2345
  "args": {},
2536
- "description": "Takes the project-scoped iid — the number in the merge request URL — not the instance-wide id. Use --json for the full payload, which carries the pipeline status, approvals, and diff refs the summary below leaves out.",
2346
+ "description": "Without --search this lists every project the token can reach, newest activity first, which on a large instance is not a useful answer — narrow it with --search or --membership. Use --simple for a much smaller payload when you only need ids and paths.",
2537
2347
  "examples": [
2538
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42",
2539
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --json"
2348
+ "<%= config.bin %> <%= command.id %> --membership",
2349
+ "<%= config.bin %> <%= command.id %> --search platform --limit 10",
2350
+ "<%= config.bin %> <%= command.id %> --search platform --simple --json"
2540
2351
  ],
2541
2352
  "flags": {
2542
2353
  "json": {
@@ -2574,33 +2385,48 @@
2574
2385
  "multiple": false,
2575
2386
  "type": "option"
2576
2387
  },
2577
- "project": {
2578
- "char": "p",
2579
- "env": "GITLAB_PROJECT",
2580
- "name": "project",
2581
- "required": true,
2582
- "summary": "Project id, or its full path such as group/subgroup/project.",
2388
+ "limit": {
2389
+ "name": "limit",
2390
+ "summary": "Maximum number of projects to return across all pages.",
2391
+ "default": 20,
2583
2392
  "hasDynamicHelp": false,
2584
2393
  "multiple": false,
2585
2394
  "type": "option"
2586
2395
  },
2587
- "mr": {
2588
- "name": "mr",
2589
- "required": true,
2590
- "summary": "Merge request iid.",
2396
+ "search": {
2397
+ "name": "search",
2398
+ "summary": "Match against the project name and path.",
2591
2399
  "hasDynamicHelp": false,
2592
2400
  "multiple": false,
2593
2401
  "type": "option"
2402
+ },
2403
+ "membership": {
2404
+ "name": "membership",
2405
+ "summary": "Only projects you are a member of.",
2406
+ "allowNo": false,
2407
+ "type": "boolean"
2408
+ },
2409
+ "owned": {
2410
+ "name": "owned",
2411
+ "summary": "Only projects you own.",
2412
+ "allowNo": false,
2413
+ "type": "boolean"
2414
+ },
2415
+ "simple": {
2416
+ "name": "simple",
2417
+ "summary": "Return only the core fields, for a much smaller payload.",
2418
+ "allowNo": false,
2419
+ "type": "boolean"
2594
2420
  }
2595
2421
  },
2596
2422
  "hasDynamicHelp": false,
2597
2423
  "hiddenAliases": [],
2598
- "id": "gitlab:mr:view",
2424
+ "id": "gitlab:project:list",
2599
2425
  "pluginAlias": "@simplysf/simply-gitlab",
2600
2426
  "pluginName": "@simplysf/simply-gitlab",
2601
2427
  "pluginType": "core",
2602
2428
  "strict": true,
2603
- "summary": "Show one merge request.",
2429
+ "summary": "List projects you can see.",
2604
2430
  "enableJsonFlag": true,
2605
2431
  "isWrite": false,
2606
2432
  "isESM": true,
@@ -2608,26 +2434,26 @@
2608
2434
  "lib",
2609
2435
  "commands",
2610
2436
  "gitlab",
2611
- "mr",
2612
- "view.js"
2437
+ "project",
2438
+ "list.js"
2613
2439
  ],
2614
2440
  "aliasPermutations": [],
2615
2441
  "permutations": [
2616
- "gitlab:mr:view",
2617
- "mr:gitlab:view",
2618
- "mr:view:gitlab",
2619
- "gitlab:view:mr",
2620
- "view:gitlab:mr",
2621
- "view:mr:gitlab"
2442
+ "gitlab:project:list",
2443
+ "project:gitlab:list",
2444
+ "project:list:gitlab",
2445
+ "gitlab:list:project",
2446
+ "list:gitlab:project",
2447
+ "list:project:gitlab"
2622
2448
  ]
2623
2449
  },
2624
- "gitlab:tag:list": {
2450
+ "gitlab:project:view": {
2625
2451
  "aliases": [],
2626
2452
  "args": {},
2627
- "description": "Tags come back newest first by the commit date they point at. That is the commit date, not the tag creation date, so a tag cut today on an old commit sorts by the old commit — use --order-by name if you need a deterministic order instead.",
2453
+ "description": "Accepts either the numeric id or the full path. Use --json for the complete, unmodified API payload, which carries far more than the summary below — permissions, statistics, and every feature toggle on the project.",
2628
2454
  "examples": [
2629
2455
  "<%= config.bin %> <%= command.id %> --project group/project",
2630
- "<%= config.bin %> <%= command.id %> --project group/project --search v1. --limit 50"
2456
+ "<%= config.bin %> <%= command.id %> --project 1234 --json"
2631
2457
  ],
2632
2458
  "flags": {
2633
2459
  "json": {
@@ -2674,54 +2500,107 @@
2674
2500
  "hasDynamicHelp": false,
2675
2501
  "multiple": false,
2676
2502
  "type": "option"
2503
+ }
2504
+ },
2505
+ "hasDynamicHelp": false,
2506
+ "hiddenAliases": [],
2507
+ "id": "gitlab:project:view",
2508
+ "pluginAlias": "@simplysf/simply-gitlab",
2509
+ "pluginName": "@simplysf/simply-gitlab",
2510
+ "pluginType": "core",
2511
+ "strict": true,
2512
+ "summary": "Show one project.",
2513
+ "enableJsonFlag": true,
2514
+ "isWrite": false,
2515
+ "isESM": true,
2516
+ "relativePath": [
2517
+ "lib",
2518
+ "commands",
2519
+ "gitlab",
2520
+ "project",
2521
+ "view.js"
2522
+ ],
2523
+ "aliasPermutations": [],
2524
+ "permutations": [
2525
+ "gitlab:project:view",
2526
+ "project:gitlab:view",
2527
+ "project:view:gitlab",
2528
+ "gitlab:view:project",
2529
+ "view:gitlab:project",
2530
+ "view:project:gitlab"
2531
+ ]
2532
+ },
2533
+ "gitlab:release:list": {
2534
+ "aliases": [],
2535
+ "args": {},
2536
+ "description": "Releases are tags with notes and assets attached, so a project can have many tags and no releases at all. Use --json for the release notes, asset links, and the commit each release points at.",
2537
+ "examples": [
2538
+ "<%= config.bin %> <%= command.id %> --project group/project",
2539
+ "<%= config.bin %> <%= command.id %> --project group/project --limit 5 --json"
2540
+ ],
2541
+ "flags": {
2542
+ "json": {
2543
+ "description": "Format output as json.",
2544
+ "helpGroup": "GLOBAL",
2545
+ "name": "json",
2546
+ "allowNo": false,
2547
+ "type": "boolean"
2677
2548
  },
2678
- "limit": {
2679
- "name": "limit",
2680
- "summary": "Maximum number of tags to return across all pages.",
2681
- "default": 20,
2549
+ "env-file": {
2550
+ "char": "e",
2551
+ "description": "Loaded before anything else. Variables already present in the environment win, so the file never overrides an explicit export, and only GitLab connection variables are read from it. A path that cannot be read is an error.",
2552
+ "helpGroup": "CONNECTION",
2553
+ "name": "env-file",
2554
+ "summary": "Path to a .env file holding connection settings.",
2682
2555
  "hasDynamicHelp": false,
2683
2556
  "multiple": false,
2684
2557
  "type": "option"
2685
2558
  },
2686
- "search": {
2687
- "name": "search",
2688
- "summary": "Return only tags whose name contains this term.",
2559
+ "gitlab-url": {
2560
+ "env": "GITLAB_URL",
2561
+ "helpGroup": "CONNECTION",
2562
+ "name": "gitlab-url",
2563
+ "summary": "Base URL of the GitLab instance. Defaults to https://gitlab.com.",
2564
+ "hasDynamicHelp": false,
2565
+ "multiple": false,
2566
+ "type": "option"
2567
+ },
2568
+ "gitlab-token": {
2569
+ "env": "GITLAB_TOKEN",
2570
+ "helpGroup": "CONNECTION",
2571
+ "name": "gitlab-token",
2572
+ "summary": "Personal, project, or group access token.",
2689
2573
  "hasDynamicHelp": false,
2690
2574
  "multiple": false,
2691
2575
  "type": "option"
2692
2576
  },
2693
- "order-by": {
2694
- "name": "order-by",
2695
- "summary": "Field to sort by.",
2577
+ "project": {
2578
+ "char": "p",
2579
+ "env": "GITLAB_PROJECT",
2580
+ "name": "project",
2581
+ "required": true,
2582
+ "summary": "Project id, or its full path such as group/subgroup/project.",
2696
2583
  "hasDynamicHelp": false,
2697
2584
  "multiple": false,
2698
- "options": [
2699
- "name",
2700
- "updated",
2701
- "version"
2702
- ],
2703
2585
  "type": "option"
2704
2586
  },
2705
- "sort": {
2706
- "name": "sort",
2707
- "summary": "Sort direction.",
2587
+ "limit": {
2588
+ "name": "limit",
2589
+ "summary": "Maximum number of releases to return across all pages.",
2590
+ "default": 20,
2708
2591
  "hasDynamicHelp": false,
2709
2592
  "multiple": false,
2710
- "options": [
2711
- "asc",
2712
- "desc"
2713
- ],
2714
2593
  "type": "option"
2715
2594
  }
2716
2595
  },
2717
2596
  "hasDynamicHelp": false,
2718
2597
  "hiddenAliases": [],
2719
- "id": "gitlab:tag:list",
2598
+ "id": "gitlab:release:list",
2720
2599
  "pluginAlias": "@simplysf/simply-gitlab",
2721
2600
  "pluginName": "@simplysf/simply-gitlab",
2722
2601
  "pluginType": "core",
2723
2602
  "strict": true,
2724
- "summary": "List repository tags.",
2603
+ "summary": "List releases for a project.",
2725
2604
  "enableJsonFlag": true,
2726
2605
  "isWrite": false,
2727
2606
  "isESM": true,
@@ -2729,26 +2608,26 @@
2729
2608
  "lib",
2730
2609
  "commands",
2731
2610
  "gitlab",
2732
- "tag",
2611
+ "release",
2733
2612
  "list.js"
2734
2613
  ],
2735
2614
  "aliasPermutations": [],
2736
2615
  "permutations": [
2737
- "gitlab:tag:list",
2738
- "tag:gitlab:list",
2739
- "tag:list:gitlab",
2740
- "gitlab:list:tag",
2741
- "list:gitlab:tag",
2742
- "list:tag:gitlab"
2616
+ "gitlab:release:list",
2617
+ "release:gitlab:list",
2618
+ "release:list:gitlab",
2619
+ "gitlab:list:release",
2620
+ "list:gitlab:release",
2621
+ "list:release:gitlab"
2743
2622
  ]
2744
2623
  },
2745
- "gitlab:ci:environment:list": {
2624
+ "gitlab:tag:list": {
2746
2625
  "aliases": [],
2747
2626
  "args": {},
2748
- "description": "Environments are what CI deploys to and what review apps create. Both available and stopped ones are listed; --state narrows to one. Use --json for the last deployment on each, which is the field worth having when you are answering \"what is running where\".",
2627
+ "description": "Tags come back newest first by the commit date they point at. That is the commit date, not the tag creation date, so a tag cut today on an old commit sorts by the old commit — use --order-by name if you need a deterministic order instead.",
2749
2628
  "examples": [
2750
2629
  "<%= config.bin %> <%= command.id %> --project group/project",
2751
- "<%= config.bin %> <%= command.id %> --project group/project --state available --search prod"
2630
+ "<%= config.bin %> <%= command.id %> --project group/project --search v1. --limit 50"
2752
2631
  ],
2753
2632
  "flags": {
2754
2633
  "json": {
@@ -2798,46 +2677,51 @@
2798
2677
  },
2799
2678
  "limit": {
2800
2679
  "name": "limit",
2801
- "summary": "Maximum number of environments to return across all pages.",
2680
+ "summary": "Maximum number of tags to return across all pages.",
2802
2681
  "default": 20,
2803
2682
  "hasDynamicHelp": false,
2804
2683
  "multiple": false,
2805
2684
  "type": "option"
2806
2685
  },
2807
- "name": {
2808
- "name": "name",
2809
- "summary": "Return the environment with exactly this name.",
2686
+ "search": {
2687
+ "name": "search",
2688
+ "summary": "Return only tags whose name contains this term.",
2810
2689
  "hasDynamicHelp": false,
2811
2690
  "multiple": false,
2812
2691
  "type": "option"
2813
2692
  },
2814
- "search": {
2815
- "name": "search",
2816
- "summary": "Return environments whose name contains this term.",
2693
+ "order-by": {
2694
+ "name": "order-by",
2695
+ "summary": "Field to sort by.",
2817
2696
  "hasDynamicHelp": false,
2818
2697
  "multiple": false,
2698
+ "options": [
2699
+ "name",
2700
+ "updated",
2701
+ "version"
2702
+ ],
2819
2703
  "type": "option"
2820
2704
  },
2821
- "state": {
2822
- "name": "state",
2823
- "summary": "Environment state.",
2705
+ "sort": {
2706
+ "name": "sort",
2707
+ "summary": "Sort direction.",
2824
2708
  "hasDynamicHelp": false,
2825
2709
  "multiple": false,
2826
2710
  "options": [
2827
- "available",
2828
- "stopped"
2711
+ "asc",
2712
+ "desc"
2829
2713
  ],
2830
2714
  "type": "option"
2831
2715
  }
2832
2716
  },
2833
2717
  "hasDynamicHelp": false,
2834
2718
  "hiddenAliases": [],
2835
- "id": "gitlab:ci:environment:list",
2719
+ "id": "gitlab:tag:list",
2836
2720
  "pluginAlias": "@simplysf/simply-gitlab",
2837
2721
  "pluginName": "@simplysf/simply-gitlab",
2838
2722
  "pluginType": "core",
2839
2723
  "strict": true,
2840
- "summary": "List a project deployment environments.",
2724
+ "summary": "List repository tags.",
2841
2725
  "enableJsonFlag": true,
2842
2726
  "isWrite": false,
2843
2727
  "isESM": true,
@@ -2845,36 +2729,17 @@
2845
2729
  "lib",
2846
2730
  "commands",
2847
2731
  "gitlab",
2848
- "ci",
2849
- "environment",
2732
+ "tag",
2850
2733
  "list.js"
2851
2734
  ],
2852
2735
  "aliasPermutations": [],
2853
2736
  "permutations": [
2854
- "gitlab:ci:environment:list",
2855
- "ci:gitlab:environment:list",
2856
- "ci:environment:gitlab:list",
2857
- "ci:environment:list:gitlab",
2858
- "gitlab:environment:ci:list",
2859
- "environment:gitlab:ci:list",
2860
- "environment:ci:gitlab:list",
2861
- "environment:ci:list:gitlab",
2862
- "gitlab:environment:list:ci",
2863
- "environment:gitlab:list:ci",
2864
- "environment:list:gitlab:ci",
2865
- "environment:list:ci:gitlab",
2866
- "gitlab:ci:list:environment",
2867
- "ci:gitlab:list:environment",
2868
- "ci:list:gitlab:environment",
2869
- "ci:list:environment:gitlab",
2870
- "gitlab:list:ci:environment",
2871
- "list:gitlab:ci:environment",
2872
- "list:ci:gitlab:environment",
2873
- "list:ci:environment:gitlab",
2874
- "gitlab:list:environment:ci",
2875
- "list:gitlab:environment:ci",
2876
- "list:environment:gitlab:ci",
2877
- "list:environment:ci:gitlab"
2737
+ "gitlab:tag:list",
2738
+ "tag:gitlab:list",
2739
+ "tag:list:gitlab",
2740
+ "gitlab:list:tag",
2741
+ "list:gitlab:tag",
2742
+ "list:tag:gitlab"
2878
2743
  ]
2879
2744
  },
2880
2745
  "gitlab:ci:job:list": {
@@ -3239,7 +3104,142 @@
3239
3104
  "list:variable:gitlab:ci",
3240
3105
  "list:variable:ci:gitlab"
3241
3106
  ]
3107
+ },
3108
+ "gitlab:ci:environment:list": {
3109
+ "aliases": [],
3110
+ "args": {},
3111
+ "description": "Environments are what CI deploys to and what review apps create. Both available and stopped ones are listed; --state narrows to one. Use --json for the last deployment on each, which is the field worth having when you are answering \"what is running where\".",
3112
+ "examples": [
3113
+ "<%= config.bin %> <%= command.id %> --project group/project",
3114
+ "<%= config.bin %> <%= command.id %> --project group/project --state available --search prod"
3115
+ ],
3116
+ "flags": {
3117
+ "json": {
3118
+ "description": "Format output as json.",
3119
+ "helpGroup": "GLOBAL",
3120
+ "name": "json",
3121
+ "allowNo": false,
3122
+ "type": "boolean"
3123
+ },
3124
+ "env-file": {
3125
+ "char": "e",
3126
+ "description": "Loaded before anything else. Variables already present in the environment win, so the file never overrides an explicit export, and only GitLab connection variables are read from it. A path that cannot be read is an error.",
3127
+ "helpGroup": "CONNECTION",
3128
+ "name": "env-file",
3129
+ "summary": "Path to a .env file holding connection settings.",
3130
+ "hasDynamicHelp": false,
3131
+ "multiple": false,
3132
+ "type": "option"
3133
+ },
3134
+ "gitlab-url": {
3135
+ "env": "GITLAB_URL",
3136
+ "helpGroup": "CONNECTION",
3137
+ "name": "gitlab-url",
3138
+ "summary": "Base URL of the GitLab instance. Defaults to https://gitlab.com.",
3139
+ "hasDynamicHelp": false,
3140
+ "multiple": false,
3141
+ "type": "option"
3142
+ },
3143
+ "gitlab-token": {
3144
+ "env": "GITLAB_TOKEN",
3145
+ "helpGroup": "CONNECTION",
3146
+ "name": "gitlab-token",
3147
+ "summary": "Personal, project, or group access token.",
3148
+ "hasDynamicHelp": false,
3149
+ "multiple": false,
3150
+ "type": "option"
3151
+ },
3152
+ "project": {
3153
+ "char": "p",
3154
+ "env": "GITLAB_PROJECT",
3155
+ "name": "project",
3156
+ "required": true,
3157
+ "summary": "Project id, or its full path such as group/subgroup/project.",
3158
+ "hasDynamicHelp": false,
3159
+ "multiple": false,
3160
+ "type": "option"
3161
+ },
3162
+ "limit": {
3163
+ "name": "limit",
3164
+ "summary": "Maximum number of environments to return across all pages.",
3165
+ "default": 20,
3166
+ "hasDynamicHelp": false,
3167
+ "multiple": false,
3168
+ "type": "option"
3169
+ },
3170
+ "name": {
3171
+ "name": "name",
3172
+ "summary": "Return the environment with exactly this name.",
3173
+ "hasDynamicHelp": false,
3174
+ "multiple": false,
3175
+ "type": "option"
3176
+ },
3177
+ "search": {
3178
+ "name": "search",
3179
+ "summary": "Return environments whose name contains this term.",
3180
+ "hasDynamicHelp": false,
3181
+ "multiple": false,
3182
+ "type": "option"
3183
+ },
3184
+ "state": {
3185
+ "name": "state",
3186
+ "summary": "Environment state.",
3187
+ "hasDynamicHelp": false,
3188
+ "multiple": false,
3189
+ "options": [
3190
+ "available",
3191
+ "stopped"
3192
+ ],
3193
+ "type": "option"
3194
+ }
3195
+ },
3196
+ "hasDynamicHelp": false,
3197
+ "hiddenAliases": [],
3198
+ "id": "gitlab:ci:environment:list",
3199
+ "pluginAlias": "@simplysf/simply-gitlab",
3200
+ "pluginName": "@simplysf/simply-gitlab",
3201
+ "pluginType": "core",
3202
+ "strict": true,
3203
+ "summary": "List a project deployment environments.",
3204
+ "enableJsonFlag": true,
3205
+ "isWrite": false,
3206
+ "isESM": true,
3207
+ "relativePath": [
3208
+ "lib",
3209
+ "commands",
3210
+ "gitlab",
3211
+ "ci",
3212
+ "environment",
3213
+ "list.js"
3214
+ ],
3215
+ "aliasPermutations": [],
3216
+ "permutations": [
3217
+ "gitlab:ci:environment:list",
3218
+ "ci:gitlab:environment:list",
3219
+ "ci:environment:gitlab:list",
3220
+ "ci:environment:list:gitlab",
3221
+ "gitlab:environment:ci:list",
3222
+ "environment:gitlab:ci:list",
3223
+ "environment:ci:gitlab:list",
3224
+ "environment:ci:list:gitlab",
3225
+ "gitlab:environment:list:ci",
3226
+ "environment:gitlab:list:ci",
3227
+ "environment:list:gitlab:ci",
3228
+ "environment:list:ci:gitlab",
3229
+ "gitlab:ci:list:environment",
3230
+ "ci:gitlab:list:environment",
3231
+ "ci:list:gitlab:environment",
3232
+ "ci:list:environment:gitlab",
3233
+ "gitlab:list:ci:environment",
3234
+ "list:gitlab:ci:environment",
3235
+ "list:ci:gitlab:environment",
3236
+ "list:ci:environment:gitlab",
3237
+ "gitlab:list:environment:ci",
3238
+ "list:gitlab:environment:ci",
3239
+ "list:environment:gitlab:ci",
3240
+ "list:environment:ci:gitlab"
3241
+ ]
3242
3242
  }
3243
3243
  },
3244
- "version": "0.6.2"
3244
+ "version": "0.7.0"
3245
3245
  }