[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