[Bps-public-commit] rt-extension-changemanagement branch devel created. 14cec957200bf94bfb528a60394294184ebb8e46

BPS Git Server git at git.bestpractical.com
Thu Jan 20 16:28:19 UTC 2022


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt-extension-changemanagement".

The branch, devel has been created
        at  14cec957200bf94bfb528a60394294184ebb8e46 (commit)

- Log -----------------------------------------------------------------
commit 14cec957200bf94bfb528a60394294184ebb8e46
Author: Jason Crome <jcrome at bestpractical.com>
Date:   Thu Jan 20 11:22:18 2022 -0500

    WIP

diff --git a/etc/Lifecycle_config.pm b/etc/Lifecycle_config.pm
new file mode 100644
index 0000000..36d736e
--- /dev/null
+++ b/etc/Lifecycle_config.pm
@@ -0,0 +1,57 @@
+Set(%Lifecycles,
+    'ChangeManagement' => {
+        initial         => [ qw( Requested ) ], # loc_qw
+        active          => [ 'Approved', 'In Progress', 'Partially Deployed' ], # loc_qw
+        inactive        => [ qw( Deployed Failed Cancelled Rejected deleted ) ], # loc_qw
+        defaults => {
+            on_create            => 'Requested',
+            approved             => 'Approved',
+            denied               => 'Rejected',
+        },
+        transitions => {
+            # The following transition is required for ticket creation
+            ''                   => [ qw( Requested ) ],
+            Submitted            => [ qw( Approved Cancelled Rejected deleted ) ],
+            Approved             => [ 'In Progress', qw( Cancelled Rejected deleted ) ],
+            'In Progress'        => [ 'Partially Deployed', qw( Deployed Failed Cancelled deleted ) ],
+            'Partially Deployed' => [ qw( Deployed Failed Cancelled deleted ) ],
+            Deployed             => [ 'In Progress', 'Partially Deployed', qw( Failed Cancelled deleted ) ],
+            Failed               => [ qw( Cancelled deleted ) ],
+            Cancelled            => [ qw( Requested Approved ) ],
+            Rejected             => [ qw( Requested Approved ) ],
+        },
+        rights => {
+            'Requested -> *' => 'Change Reviewer',
+        },
+        actions => [
+            '* -> Requested' => {
+                label  => 'Submit For Approval',
+            },
+        ]
+    },
+    __maps__ => {
+        'default -> Change Management' => {
+            'new'         => 'Requested',
+            'resolved'    => 'Deployed',
+            'open'        => 'In Progress',
+            'rejected'    => 'Rejected',
+            'stalled'     => 'Partially Deployed', # TODO: ???
+            'deleted'     => 'deleted',
+        },
+        'Change Management -> default' => {
+            'Requested'          => 'new',
+            'Deployed'           => 'resolved',
+            'Rejected'           => 'rejected',
+            'deleted'            => 'deleted',
+            'In Progress'        => 'open',
+            'Approved'           => 'open',
+            # TODO: Not sure what to do with these
+            'Partially Deployed' => 'stalled', 
+            'Failed'             => '',
+            'Cancelled'          => '',
+        },
+    }
+);
+
+1;
+
diff --git a/etc/initialdata b/etc/initialdata
new file mode 100644
index 0000000..9546ee8
--- /dev/null
+++ b/etc/initialdata
@@ -0,0 +1,108 @@
+use strict;
+use warnings;
+
+our @Queues = (
+    { 
+        Name              => 'Change Management',
+        Description       => 'Queue for change management requests',
+        Lifecycle         => 'Change Management',
+        CorrespondAddress => "",
+        CommentAddress    => "",
+    },
+);
+
+our @CustomFields = (
+    {
+        Name        => 'Change Status',
+        Type        => 'SelectSingle',
+        LookupType  => 'RT::Queue-RT::Ticket',
+        Description => '',
+        ApplyTo     => ['Change Management'],
+        MaxValues   => 1,
+        RenderType  => 'Dropdown',
+        Values      => [
+            { Name => 'Requested',          SortOrder => 1 },
+            { Name => 'Approved',           SortOrder => 2 },
+            { Name => 'Deployed',           SortOrder => 3 },
+            { Name => 'Partially Deployed', SortOrder => 4 },
+            { Name => 'Failed',             SortOrder => 5 },
+            { Name => 'Cancelled',          SortOrder => 6 },
+            { Name => 'Rejected',           SortOrder => 7 },
+        ],
+        SortOrder   => 1
+    },
+    {
+        Name        => 'Change Category',
+        Type        => 'SelectSingle',
+        LookupType  => 'RT::Queue-RT::Ticket',
+        Description => '',
+        ApplyTo     => ['Change Management'],
+        MaxValues   => 1,
+        RenderType  => 'Dropdown',
+        Values      => [
+            { Name => 'Configuration Change',   SortOrder => 1 },
+            { Name => 'OS Patching',            SortOrder => 2 },
+            { Name => 'Firmware Update',        SortOrder => 3 },
+            { Name => 'Software Update',        SortOrder => 4 },
+            { Name => 'New Software Install',   SortOrder => 5 },
+            { Name => 'Hardware Repair',        SortOrder => 6 },
+            { Name => 'New Hardware Install',   SortOrder => 7 },
+            { Name => 'Project Implementation', SortOrder => 7 },
+        ],
+        SortOrder   => 2
+    },
+    {
+        Name        => 'Change Type',
+        Type        => 'SelectSingle',
+        LookupType  => 'RT::Queue-RT::Ticket',
+        Description => '',
+        ApplyTo     => ['Change Management'],
+        MaxValues   => 1,
+        RenderType  => 'Dropdown',
+        Values      => [
+            { Name => 'Standard',  SortOrder => 1 },
+            { Name => 'Normal',    SortOrder => 2 },
+            { Name => 'Emergency', SortOrder => 3 },
+        ],
+        SortOrder   => 3
+    },
+    {
+        Name              => 'Deployed Date',
+        Description       => 'Date the change was deployed',
+        LookupType        => 'RT::Queue-RT::Ticket',
+        Type              => 'DateTime',
+        MaxValues         => 1,
+        SortOrder         => 4,
+    },
+    {
+        Name              => 'Rollback Plan',
+        Description       => 'Explain the backout plan to restore normal operations',
+        LookupType        => 'RT::Queue-RT::Ticket',
+        Type              => 'Text',
+        MaxValues         => 1,
+        SortOrder         => 5,
+    },
+);
+
+our @Groups = (
+    {
+        Name        => 'Change Review Board',
+        Description => 'People responsible for approving change requests',
+    },
+);
+
+our @CustomRoles = (
+    {
+        Name        => 'Change Reviewer',
+        Description => 'The person asked to review the change request',
+        ApplyTo     => 'Change Management',
+        MaxValues   => 1,
+    },
+    {
+        Name        => 'Change Implementor',
+        Description => 'The person asked to implement the change request',
+        ApplyTo     => 'Change Management',
+        MaxValues   => 1,
+    },
+);
+
diff --git a/lib/RT/Extension/ChangeManagement.pm b/lib/RT/Extension/ChangeManagement.pm
index f7bc86c..a425b93 100644
--- a/lib/RT/Extension/ChangeManagement.pm
+++ b/lib/RT/Extension/ChangeManagement.pm
@@ -6,18 +6,11 @@ our $VERSION = '0.01';
 
 =head1 NAME
 
-RT-Extension-ChangeManagement - [One line description of module's purpose here]
-
-=head1 DESCRIPTION
-
-[Why would someone install this extension? What does it do? What problem
-does it solve?]
+RT-Extension-ChangeManagement - Default Change Management configuration for RT
 
 =head1 RT VERSION
 
-Works with RT [What versions of RT is this known to work with?]
-
-[Make sure to use requires_rt and rt_too_new in Makefile.PL]
+Works with RT 5.
 
 =head1 INSTALLATION
 
@@ -43,6 +36,10 @@ Add this line:
 
 =item Restart your webserver
 
+=head1 DESCRIPTION
+
+Implements a minimalistic change management process within RT.
+
 =back
 
 =head1 AUTHOR
@@ -62,7 +59,7 @@ href="http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-ChangeManage
 
 =head1 LICENSE AND COPYRIGHT
 
-This software is Copyright (c) 2022 by Jason A. Crome
+This software is Copyright (c) 2022 by Best Practical Solutions, LLC.
 
 This is free software, licensed under:
 
commit 9172317179d073d7b88e36f5896ee9dd076b9223
Author: Jason Crome <jcrome at bestpractical.com>
Date:   Mon Jan 10 10:38:37 2022 -0500

    Initial version.

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be756ab
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+blib*
+Makefile
+Makefile.old
+pm_to_blib*
+*.tar.gz
+.lwpcookies
+cover_db
+pod2htm*.tmp
+/RT-Extension-ChangeManagement*
+*.bak
+*.swp
+/MYMETA.*
+/t/tmp
+/xt/tmp
diff --git a/Changes b/Changes
new file mode 100644
index 0000000..9d5774f
--- /dev/null
+++ b/Changes
@@ -0,0 +1,4 @@
+Revision history for RT-Extension-ChangeManagement
+
+0.01 [Release Date]
+ - Initial version
diff --git a/Makefile.PL b/Makefile.PL
new file mode 100644
index 0000000..596832a
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,12 @@
+use lib '.';
+use inc::Module::Install;
+
+RTx     'RT-Extension-ChangeManagement';
+license 'gpl_2';
+repository 'https://github.com/bestpractical/rt-extension-changemanagement';
+
+requires_rt '4.4.0';
+rt_too_new '5.2.0';
+
+sign;
+WriteAll;
diff --git a/lib/RT/Extension/ChangeManagement.pm b/lib/RT/Extension/ChangeManagement.pm
new file mode 100644
index 0000000..f7bc86c
--- /dev/null
+++ b/lib/RT/Extension/ChangeManagement.pm
@@ -0,0 +1,73 @@
+use strict;
+use warnings;
+package RT::Extension::ChangeManagement;
+
+our $VERSION = '0.01';
+
+=head1 NAME
+
+RT-Extension-ChangeManagement - [One line description of module's purpose here]
+
+=head1 DESCRIPTION
+
+[Why would someone install this extension? What does it do? What problem
+does it solve?]
+
+=head1 RT VERSION
+
+Works with RT [What versions of RT is this known to work with?]
+
+[Make sure to use requires_rt and rt_too_new in Makefile.PL]
+
+=head1 INSTALLATION
+
+=over
+
+=item C<perl Makefile.PL>
+
+=item C<make>
+
+=item C<make install>
+
+May need root permissions
+
+=item Edit your F</opt/rt4/etc/RT_SiteConfig.pm>
+
+Add this line:
+
+    Plugin('RT::Extension::ChangeManagement');
+
+=item Clear your mason cache
+
+    rm -rf /opt/rt4/var/mason_data/obj
+
+=item Restart your webserver
+
+=back
+
+=head1 AUTHOR
+
+Best Practical Solutions, LLC E<lt>modules at bestpractical.comE<gt>
+
+=for html <p>All bugs should be reported via email to <a
+href="mailto:bug-RT-Extension-ChangeManagement at rt.cpan.org">bug-RT-Extension-ChangeManagement at rt.cpan.org</a>
+or via the web at <a
+href="http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-ChangeManagement">rt.cpan.org</a>.</p>
+
+=for text
+    All bugs should be reported via email to
+        bug-RT-Extension-ChangeManagement at rt.cpan.org
+    or via the web at
+        http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-ChangeManagement
+
+=head1 LICENSE AND COPYRIGHT
+
+This software is Copyright (c) 2022 by Jason A. Crome
+
+This is free software, licensed under:
+
+  The GNU General Public License, Version 2, June 1991
+
+=cut
+
+1;
-----------------------------------------------------------------------


hooks/post-receive
-- 
rt-extension-changemanagement


More information about the Bps-public-commit mailing list